おそらく私は何も心配していません。私はデータメンバーがRAIIのイディオムに密接に従うことを望んでいます。抽象基本クラスの保護されたポインタメンバーをnullに初期化するにはどうすればよいですか?抽象基本クラスの保護されたメンバーをどのように初期化しますか?
私はそれがnullであるべきであることは知っていますが、それが普遍的に理解されていることを保証するのはより良いでしょうか?
初期化コードを初期化子リストの外に置くことは、実行されない可能性があります。このポインターをスタックに割り当てるアセンブリ操作について考えると、マルチスレッド環境では(c'tor本体と同じように)中断されたり、スタック拡張がアトムであることが保証されませんでしたか?デストラクタを実行することが保証されている場合、プロセッサがアトミックに実行しなくても、スタック拡張でそのような保証はないかもしれませんか?
このような簡単な質問はどのようにして広範になりましたか?ありがとう。
私がstd :: libraryを避けることができれば、私はミニマル環境にいます。
よく考えて、lol ++ – John
あまりにも多くの 'if(p)delete p;'ウィザードがおそらくコードを生成していますか? – John
@ジョン:私はもう少し重要ではない事例を追加しました。 'delete'は' Base ::〜Base(){delete p;}}のようにベースのデストラクタになければなりません。 } '。 (確かに、 'もし'を言うことはありません。) –