3
これは私のコースから割り当てられたもので、後ろの推論を理解するのが苦労しています。ベクター内のオブジェクト用であればデストラクタは呼び出されますか?
我々は次のように何のポインタとクラスの車を持っていないクラスPersonあります
class Car{
public:
//stuff
private:
Person* owner;
};
し、次のような関数:
機能が終了しvoid f() {
vector<Car> v;
// do stuff with the vector
}
を、そこをコースの教材では、ベクトルの各Carを調べ、関数f()の最後にオーナーポインタを削除することを推奨します。メモリリークを防ぐために所有者を削除するCarのデストラクタを書くだけでは不十分ですか?
~Car() {
delete owner;
}
短い答え:はい。 – StoryTeller
回答ありがとうございます! – osk
もう少し複雑です。デストラクタを定義する必要がある場合は、他の[メンバ関数](http://en.cppreference.com/w/cpp/language/rule_of_three)にも注意する必要があります。 – StoryTeller