私の知る限り、作成したすべてのものをデストラクタで破棄し、new
開いているファイル ストリームやその他のストリームを閉じる必要があります。ただし、C++ の他のオブジェクトについては疑問があります。
std::vector
およびstd::string
s: それらは自動的に破棄されますか?私が次のようなものを持っている場合
std::vector<myClass*>
クラスへのポインタの。ベクトル デストラクタが呼び出されるとどうなりますか?
のデストラクタを自動的に呼び出しますmyClass
か? または、ベクターのみが破棄されますが、それに含まれるすべてのオブジェクトはメモリ内にまだ存在していますか?クラス内に別のクラスへのポインターがある場合はどうなりますか。たとえば、次のようにします。
class A { ClassB* B; }
クラス A は、コードのある時点で破棄されます。クラス B も破棄されますか、それともポインタとクラス B だけがメモリのどこかにまだ存在しますか?