C++中将析构函数声明为peotected 或者 private权限,可以禁止产生非堆对象。如果在栈中定义对象,则它是不能自动销毁的。
class Demo
{
public:
...
protected:
~Demo():
}
如上定义后,可以可以Demo *pDemo = new Demo(); 但Demo demo;就是错误的了,因为栈中的对象不能自动销毁[这个解释纯性个人理解,欢迎指正]。
C++中将析构函数声明为peotected 或者 private权限,可以禁止产生非堆对象。如果在栈中定义对象,则它是不能自动销毁的。
class Demo
{
public:
...
protected:
~Demo():
}