2016-11-17 18 views
2

は、私がAをkとしてインスタンス化されると、このようなクラスはC++クラスでベクトルを宣言すると、それが破棄され、クラスのinstateが破棄されますか?

class A { 
public: 
     vector<int> intVector; 
     A() { 
      intVector.push_back(1); 
     }; 
     ~A(){}; 
}; 

int main() { 
     A *k = new A; 
     delete k; 
} 

、intVectorが作成されますがあるだろう。しかし、私の質問は、デストラクタがintVectorを処理しない場合、intVectorに割り当てられたメモリは、kのポインタが破棄されたときにリサイクルされるかどうかです。

+0

あなたのデストラクタは正しいです。 – Jarod42

答えて

1

はい、コンパイラは、すべてのメンバ変数を破壊する(クラスが由来すること任意基底クラスのデストラクタを呼び出す)ためにクラスのデストラクタ内のコードを生成する

+0

ありがとう!私はクラス内の変数が削除されたとして削除する必要があると思ったが、どうしたらよいか分からなかった。 – Musen

関連する問題