析构函数声明为私有的作用
2008-11-21 23:09
127 查看
当我们规定类只能在堆上分配内存时,就可以将析构函数声明为私有的。
class alloc
{
public:
alloc():
private:
~alloc();
};
如果在栈上分配空间,类在离开作用域时会调用析构函数释放空间,此时无法调用私有的析构函数。
如果在堆上分配空间,只有在delete时才会调用析构函数。
可以添加一个destroy()函数来释放,从而解决不能在析构函数中添加delete的问题。
class alloc
{
public:
alloc():
destroy(){ delete this;}
private:
~alloc();
};
class alloc
{
public:
alloc():
private:
~alloc();
};
如果在栈上分配空间,类在离开作用域时会调用析构函数释放空间,此时无法调用私有的析构函数。
如果在堆上分配空间,只有在delete时才会调用析构函数。
可以添加一个destroy()函数来释放,从而解决不能在析构函数中添加delete的问题。
class alloc
{
public:
alloc():
destroy(){ delete this;}
private:
~alloc();
};
相关文章推荐
- 析构函数声明为私有的作用
- 析构函数声明为私有的作用
- 析构函数声明为私有的作用
- 将构造函数,析构函数声明为私有和保护的,那么对象如何创建?
- 【Java】将构造函数声明为私有有什么作用?
- 拷贝构造函数和赋值构造函数声明为私有的作用
- 拷贝构造函数和赋值构造函数声明为私有的作用
- C++ 将对象的构造和析构函数声明为Protected的作用
- 将构造函数,析构函数声明为私有和保护的,那么对象如何创建?
- 拷贝构造函数和赋值构造函数声明为私有的作用
- 程序员面试金典: 9.14 Java 14.1 从继承的角度来看,将构造函数声明为私有会有何作用?
- 将析构函数声明为private的作用
- C++将多态基类的析构函数声明为virtual的作用
- 拷贝构造函数和赋值构造函数声明为私有的作用
- 拷贝构造函数和赋值构造函数声明为私有的作用
- C++ 将对象的构造和析构函数声明为Protected的作用
- C++中虚的私有的析构函数的作用
- 私有析构函数的作用
- 为什么把c++类的析构函数声明为虚函数?
- C 箴言:多态基类中将析构函数声明为虚拟