1.只能在堆上创建的对象
1) 把析构函数声明为private
2)定义一个destroy()函数,用这个函数来delete对象,
void destroy() { delete this; }
1)覆盖operator new 和 operator delete 为priavate