我的C++非常生疏,所以现在我开始将它用于一个业余爱好项目,我必须"升级" - 重复...
#include "stdafx.h"
#include "stdlib.h"
class a
{
public:
void call() { printf("CALL called\n"); }
};
class b
{
public:
b() { this->pointer = new a; }
void call() { this->pointer->call(); }
private:
a* pointer;
};
int _tmain(int argc, _TCHAR* argv[])
{
b t;
t.call();
system("PAUSE");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这会导致内存泄漏吗?如果程序决定它不再需要它们,我怎么能删除指针呢?
"删除t"是否足够或者是否会产生内存泄漏?
pointerin b已分配但从未删除.您需要为b删除定义析构函数a,否则每次超出范围时都会泄漏a指向的内容:pointerb
b::~b()
{
delete pointer;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |