久々にC++でクラスを作ろうと思ったらすっかり忘れてしまいました。
次のようなクラスを作りたいのですが、どうように作ればいいのか思い出せません。
子供クラス:Child,親クラス:Parentを定義します。
親クラス:Parentのメンバ変数として、複数のChildインスタンスを取りたいです。
ただし、Parentのインスタンスを生成した段階では、Childのインスタンスを何個取るか決めていません。
Parentのインスタンスを生成したのち、適当なメンバ関数に子供クラスの数N_childrenを引数として、N_children個のChildクラスを親クラスに持たせます。
適当な処理をしたのち、親クラスが持っていた子供クラスのインスタンスのメモリを解放します。
(または、親クラスのインスタンスを解放をすれば、親クラスが持っていた子供インスタンスのメモリも含めて全て解放されるのでしょうか。)
以下はなんとなくのものです。上の質問の補足です。
ざっくりと親クラスに、Childクラスのポインタを持たせておいて、
new でN_children個のChildクラスの動的配列を取るような以下のメンバ関数を作ればいいんですかね。
generate Children(int N_children){ children = new Child[N_children] }
となると、childerenの解放をどうやるのかがわかりません。
普通に、
delete[] children
とすするメンバ関数を作ればいいんですかね。
また、これもできるし、別にこういうことをしなくても、parentのインスタンスを解放すればそれでいいんですかね。
グダグダですいません。とりあえず、こういうクラスをどうやって作るべきか、簡単に教えていただけませんでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/23 05:50
2019/09/23 05:51