【发布时间】:2012-02-05 17:38:34
【问题描述】:
我是一个 c++ 新手,我的代码目前在多个地方都是新的,没有调用 delete。我知道我需要为此做点什么。
我的典型用法是在另一个类成员方法中新建一个类实例,然后该方法返回指向该对象的指针。
如果我将返回类型从 MyType* 更改为 std::tr1::shared_ptr 是否会修复我的代码不泄漏内存?
非常感谢。
编辑: 同样,我目前将新的对象存储为 MyType* 作为 std:map 中的值。此映射是类实例的私有成员。如果我只是将其更改为 std::tr1::shared_ptr 是否会在其所有者(类)超出范围时清除这些?
再次感谢
【问题讨论】:
-
如果您一直在编写代码而不关心内存管理,那么您可能会遇到比泄漏更大的问题。
-
这是我第一个周末写 c++ - 给我一点余地。
-
也许显示一个示例,说明您将在何处使用
shared_pointer?很有可能它对你的用途来说有点过头了。
标签: c++