我试图回答this问题,所以我决定创建以下简单的测试用例,以便OP可以自己看到内存泄漏。为什么这里没有内存泄漏
#include<iostream>
class MyObject
{
public:
MyObject(){std::cout << "creation of my object" << std::endl;}
virtual ~MyObject(){std::cout << "destruction of my object" << std::endl;}
};
void processMyObject(MyObject foo)
{
}
int main()
{
processMyObject(*new MyObject());
return 0;
}
我编译它:
g++ test.cpp -o test
然后,我看到了一个意想不到的输出:
creation of my object
destruction of my object
我是绝对没有这里发生了什么的想法。任何人都可以向我解释?
PS:我因为你的价值采取MyObject
使用G ++ 4.6.3
有内存泄漏。你需要测试拷贝并移动拷贝构造函数。 – juanchopanza