我对C++内存管理有疑问,这显然与引用和指针有关.假设我有Class一个方法类my_method:
OtherClass& Class::my_method( ... ) {
OtherClass* other_object = new OtherClass( ... );
return *other_object;
}
Run Code Online (Sandbox Code Playgroud)
同时在附近的一段代码中:
{
Class m( ... );
OtherClass n;
n = m.my_method( ... );
}
Run Code Online (Sandbox Code Playgroud)
所以,我知道有一个关于指针的一般规则(〜"任何新编辑,必须删除-d")以避免内存泄漏.但基本上我正在引用我的堆分配对象,所以当n超出范围时,不应该调用OtherClass的析构函数,从而释放之前由other_object指向的内存?所以最后真正的问题是:这会导致内存泄漏吗?
谢谢.