在 C++ 中,假设 Helper 类中有一个方法,它返回一个指向另一个对象的指针。除了方法签名和返回对象的类型外,我没有关于此方法的更多信息。在这种情况下如何进行内存管理?
我试图在下面使用智能指针作为这个函数:
void f() {
auto_ptr<SomeClass> p_someClass = p_Helper->getSomeclass();
p_someClass->doSomething();
}
一旦 f() 超出范围,分配给 p_someClass 的内存就会被释放。但是,如果 getSomeclass() 不分配新内存而只是返回一个“单例”指针(并且 p_Helper 也是单例)怎么办?那么下一次调用 p_Helper->getSomeclass() 就会遇到麻烦。
处理这个问题的常用方法是什么,尤其是当 Helper 类的文档很少时?