首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有可能重载C++11新操作符来创建智能指针?

是否有可能重载C++11新操作符来创建智能指针?
EN

Stack Overflow用户
提问于 2014-12-24 07:32:23
回答 1查看 1.2K关注 0票数 2

我希望始终使用C++11智能指针,使用传统的指针语法(这有点类似于Java语法),因为我不想担心内存管理,所以我认为用自定义操作符重载新操作符是个好主意,换句话说

而不是像这样动态地创建新对象:

代码语言:javascript
复制
    obj *o = new obj();

创建指向obj的传统指针,我想让它创建智能指针,如下所示

代码语言:javascript
复制
    obj *o = new obj(); // o will be deleted automatically

我该怎么做这样的东西?

注意:我不想替换原来的新操作符,我只想重载我自己的第一类。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 07:35:46

不是的。

只要您有obj *o = new ...,您仍然返回一个普通指针,而不是一个新类型。

需要一个新类型(智能指针类),以便您可以使用析构函数来释放内存。如果你只有一个普通的指针--你必须手动地delete它。

(有可能产生一个全局垃圾收集器-每个新的分配都将在那里记录,全局GC将被称为定期扫描不再指向和释放它们的内存区域)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27633244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档