C++クラスと動的配列の知識を組み合わせ始めたところです。「新しい演算子を使うときはいつでも」削除すべきだというアドバイスを受けました。デストラクタがどのように機能するかも知っているので、このコードは正しいと思います。
main.cpp
...
int main()
{
PicLib *lib = new PicLib;
beginStorage(lib);
return 0;
}
void beginStorage(PicLib *lib)
{
...
if (command != 'q')
{
//let's assume I add a whole bunch
//of stuff to PicLib and have some fun here
beginStorage(lib);
}
else
{
delete lib;
lib = NULL;
cout << "Ciao" << endl;
}
}
PicLib.cpp
...
PicLib::PicLib()
{
database = new Pic[MAX_DATABASE];
num_pics = 0;
}
PicLib::~PicLib()
{
delete[] database;
database = NULL;
num_pics = 0;
}
...
PicLibに、Picより動的な配列を含むクラスを入力します。Picのデストラクタは、上記と同じ方法でそれらを削除します。私はそれdelete [] databaseがそれらすべてのクラスを適切に取り除くと思います。
では、 main.cppでの削除は必要ですか?ここでハンキーなドーリーに見えるものはすべてありますか?