#笔试#如何保证一个类只能在堆上被创建?
来源:互联网 发布:怎么在淘宝搜耽美 编辑:程序博客网 时间:2024/05/29 19:37
去笔试时碰到的一个问题:设计一个类,让它只能在堆上分配内存空间。
当时就被难住了,无语。
个人感觉用下面这个办法就可以了。
http://blog.csdn.net/daeees/archive/2010/07/18/5744225.aspx
有的时候为了保证一个类的对象必须在堆上被创建, 比如当我们需要手动控制一个对象的生命周期的时候, 这个时候就必须保证这个对象是在堆上创建的, 如何保证呢, 有个小的技巧:
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: 如何保证一个类只能在堆上被创建
- 如何保证一个类只能在堆上被创建
- 如何保证只能在堆(heap)上创建对象?
- 如何保证只能在堆(heap)上创建对象?
- 保证只能在堆上new一个类对象
- 如何保证同一个账号同时只能在一个设备登录,账号自动登录
- 如何创建一个只能在堆上创建对象的类
- Android如何保证一个线程最多只能有一个Looper?
- 如何创建一个类只能在堆(栈)上建立对象
- 如何创建一个只能在堆上产生对象的类
- 如何定义一个只能在堆(栈)上创建对象的类
- 如何创建一个类只能在堆(栈)上建立对象
- 如何定义一个只能在堆(栈)上创建对象的类
- 让一个类只能在对上创建对象或者只能在栈上实例化
- 设计一个类只能在堆(栈)上创建
- 如何定一个只能在堆上或者只能在栈上定义的类
- 设计一个类不能被继承;只能在堆上创建对象;只能在栈上创建对象
- Dex2Jar
- Color table
- 关于“Web 创作组件” 解决MS Office 2007找不到Office.zh-cn问题以及VS2008 SP1 安装失败需指定visualwebdeveloperww.msi所在路径
- 随笔
- c#.net ArrayList的用法
- #笔试#如何保证一个类只能在堆上被创建?
- ACD系列翻译之三
- gdb调试
- viber免费打电话,发短信。五个月用户超千万:简单、免费爆炸式传播
- Flex4之元数据标签使用
- 去除标题栏title的两种方法
- FileReader && FileInputStream
- SQL SERVER 数据库Replication 中无法读取Pre文件的解决方法
- 给程序计时2-bzero & memset置零的性能比较