は、だから私は基本的にこれをしたい:私はこれを行う、そのようにデストラクタを作成するときにSTLコンテナ/スマートポインタを使用して、クラス自身の配列を保持するにはどうすればよいですか?
struct A {
A *children[10];
};
しかし、:
virtual ~A() {
for (A *child: children) {
delete child;
}
}
私は、セグメンテーションフォールトを取得し、私がなぜわかりません。だから、私はSTLクラスを使ってA内のAのリストを保持することができますので、新規/削除について心配する必要はありませんか?私はベクトルを試み、 "不完全な型"のエラーを取得します。 for (A *child: A) { delete child; ...
で
'std :: vector 'を試しましたか?私は 'A'はそれ自体が含まれているとは思わない?私はここで何かをするのに十分な情報がないので、ここで推測しています。あなたの質問に[mcve]が含まれるように[編集]してください。あなたの例では約20行を超えてはいけません。 – Tas
'C++ 17'では' struct A {std :: vector children;}を書くことができます。 } ';これらの不完全なタイプの心配なしに。これはすぐには役に立たないかもしれませんが、システムが許せば最新の標準へのアップグレードが助けになります:) – HeroicKatora
ここに示すコードでは、ポインタは初期化されていないので、それらの削除はそれぞれ定義されていません。 –