私の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;
}
は、メモリリークのものとなります。..今、私は私が「レベルアップ」-againになった趣味のプロジェクトのためにそれを使用し始めていることはかなり錆びているのですか?プログラムがもうポインタを必要としないと判断した場合、ポインタを削除するにはどうすればいいですか?
"tを削除"すれば十分ですか、あまりにもメモリリークが発生しますか?
これでは不十分です。明らかに建設/破壊とRAWポインターに関する経験がない人に助言を与えると、自分自身にとって危険にならないようにしてください。この状況では、最小値には、コピーコンストラクタと代入演算子の無効化も含まれている必要があります(または、それらを正しく定義する方法を説明してください)。 –