抽象基本クラスはメンバ変数(ただしメンバメソッドはありません)のみを保持するクラス継承構造をセットアップする必要があります。メンバーメソッドは、派生クラスによって定義されます。そこで、私が必要とすると、このポストである:保護されたコンストラクタと純粋な仮想デストラクタ
- はデストラクタが純粋仮想行いますが、トップ2の回答からMaking a class abstract without any pure virtual methods
、私はそれを達成するための2つの方法があります実現しました。
- コンストラクタを保護します。
私は2つのアプローチの違いを知りたいと思っています。シナリオは、他のシナリオよりも優先されるべきか(あるいは、あるシナリオでは動作するが、他は動作しないような特殊なシナリオがありますか)?私はそれについて考え、何も考えられませんでした。
いくつかの記事(Is there a use for making a protected destructor virtual?、C++: Protected Class Constructor、Should an abstract class' destructor be pure virtual?)の回答を検索して何かをまとめてみましたが、結論に至ることはできませんでした。
これはOPの質問に*本当に*答えるものではありません。保護されていない仮想デストラクタを保護されたコンストラクタのケースで使用すると、サンプルコードで定義された動作が行われます。あなたは、関連しているが直面している問題について話している。 –