我有一个C++内存管理疑问,这是(显然)与引用和指针相关。假设我有一类Class
与方法my_method
:这会导致C++中的内存泄漏吗?
OtherClass& Class::my_method(...) {
OtherClass* other_object = new OtherClass(...);
return *other_object;
}
同时在附近的一段代码:
{
Class m(...);
OtherClass n;
n = m.my_method(...);
}
所以,我知道,有关于指针一般规则(〜“什么新 - ed,必须是delete -d“)以避免内存泄漏。但基本上我正在引用我的堆分配对象,所以当n超出范围时,不应该调用OtherClass的析构函数,从而释放先前由other_object指向的内存? 所以最后真正的问题是:这会导致内存泄漏吗?
谢谢。
感谢您指点。 – tunnuz 2009-01-24 11:45:39