【发布时间】:2010-10-03 07:37:17
【问题描述】:
我对 C++ 内存管理有疑问,这(显然)与引用和指针有关。假设我有一个类Class 有一个方法my_method:
OtherClass& Class::my_method( ... ) {
OtherClass* other_object = new OtherClass( ... );
return *other_object;
}
同时在附近的一段代码中:
{
Class m( ... );
OtherClass n;
n = m.my_method( ... );
}
所以,我知道有一个关于指针的一般规则(~“任何 new-ed,必须是 delete-d”)以避免内存泄漏。但基本上我引用了我的堆分配对象,所以当 n 超出范围时,不应该调用 OtherClass 的析构函数从而释放之前由 other_object 指向的内存吗? 所以最后真正的问题是:这会导致内存泄漏吗?
谢谢。
【问题讨论】:
标签: c++ pointers memory-leaks reference memory-management