我希望始终使用C++11智能指针,使用传统的指针语法(这有点类似于Java语法),因为我不想担心内存管理,所以我认为用自定义操作符重载新操作符是个好主意,换句话说
而不是像这样动态地创建新对象:
obj *o = new obj();创建指向obj的传统指针,我想让它创建智能指针,如下所示
obj *o = new obj(); // o will be deleted automatically我该怎么做这样的东西?
注意:我不想替换原来的新操作符,我只想重载我自己的第一类。
谢谢。
发布于 2014-12-24 07:35:46
不是的。
只要您有obj *o = new ...,您仍然返回一个普通指针,而不是一个新类型。
需要一个新类型(智能指针类),以便您可以使用析构函数来释放内存。如果你只有一个普通的指针--你必须手动地delete它。
(有可能产生一个全局垃圾收集器-每个新的分配都将在那里记录,全局GC将被称为定期扫描不再指向和释放它们的内存区域)。
https://stackoverflow.com/questions/27633244
复制相似问题