如何保证一个类只能在堆上被创建
2014-06-05 10:36
302 查看
有的时候为了保证一个类的对象必须在堆上被创建, 比如当我们需要手动控制一个对象的生命周期的时候, 这个时候就必须保证这个对象是在堆上创建的, 如何保证呢, 有个小的技巧:
class A
{
public:
void Close() {delete this; }
private:
~A() { ... };
};
int main()
{
A a; //error, cannot access private member method.
A* pa = new A(); //ensure all the object of this class will be created in heap.
pa->Close();
}
就是将析构函数给private了.并且用另外个公共函数来调用析够函数
class A
{
public:
void Close() {delete this; }
private:
~A() { ... };
};
int main()
{
A a; //error, cannot access private member method.
A* pa = new A(); //ensure all the object of this class will be created in heap.
pa->Close();
}
就是将析构函数给private了.并且用另外个公共函数来调用析够函数
相关文章推荐
- #笔试#如何保证一个类只能在堆上被创建?
- Tip: 如何保证一个类只能在堆上被创建
- 如何创建一个只能在堆上创建对象的类
- Java中如何实现一个类在内存里只能创建一个实例对象
- 如何保证只能在堆(heap)上创建对象?
- 类--设计一个类不能被继承&&设计一个类只能在堆上创建对象&&设计一个类只能在栈上创建对象。
- 每日一刷——一个类不能被继承 &类只能在堆上创建对象&类只能在栈上创建对象。
- 如何创建一个只允许使用sftp登录且只能访问特定目录的账号
- 如何保证同一个账号同时只能在一个设备登录,账号自动登录
- -设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象。
- 设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象
- Android如何保证一个线程最多只能有一个Looper?
- 如何定义一个只能在堆上生成对象的类
- 如何定义一个只能在堆上(栈上)生成对象的类
- 如何定义一个只能在堆上(栈上)生成对象的类?
- 如何定义一个只能在堆上(栈上)生成对象的类?
- Java中如何使某个类的对象唯一性,只能创建一个对象
- 如何创建一个类只能在堆(栈)上建立对象
- 如何定义一个只能在堆上(栈上)生成对象的类?
- 1.设计一个类不能被继承 2.设计一个类只能在堆上创建对象。 3.设计一个类只能在栈上创建对象