STL コンテナーは継承を許可するように設計されていますか?
標準ライブラリ コンテナーは継承を許可します。標準ライブラリ コンテナー クラスからの継承を妨げるものは何もありません。これを行うと、コンパイル エラーは発生しません。
しかし、それらが設計されていないのは、基本クラス ポインターを介した派生クラス オブジェクトの破棄を許可することです。そのため、そのようなシナリオ (要するに動的ポリモーフィズム) で継承を使用したい場合、標準ライブラリ コンテナーは明らかにそのために設計されていません。
継承には仮想デストラクタが必要ですか?
delete
基本クラスのデストラクタは、派生クラス オブジェクトを指す基本クラス ポインターで呼び出す場合にのみ、仮想である必要があります。基本クラスのデストラクタが仮想でない場合、未定義の動作が発生します。
要約すると、ルールは次のとおりです。
動的ポリモーフィズムのための継承が必要な場合、標準ライブラリのコンテナ クラスはそれ用に設計されていませんが、その必要がない場合は、それらから安全に継承できます。
注:提供した回答リンクの分析は正しいです。おそらく、元の Q が投稿されてから長い間 (数年) 後に回答が投稿されたため、回答が得られませんでした。あなたは今そこに私の+1を持っています.