抽象基本クラスがメンバー変数のみを保持する (メンバー メソッドは保持しない) クラス継承構造をセットアップする必要があります。メンバー メソッドは、派生クラスによって定義されます。したがって、私が必要とするのはこの投稿です:純粋な仮想メソッドなしでクラスを抽象化する
そこの上位2つの回答から、それを達成するには2つの方法があることに気付きました。
- デストラクタを純粋仮想にします。
- コンストラクターを保護します。
2つのアプローチの違いを知りたいです。どちらか一方を優先する必要があるシナリオはありますか (または、一方が機能するが他方が機能しないという特別な状況もあります)? 私はそれについて考え、何も考えることができませんでした。
ここでいくつかの投稿の回答を検索しました ( Is there a use for Making a protected destructor virtual? , C++: Protected Class Constructor , Should an abstract class' destructor be pure virtual? ) 何かをまとめようとしましたが、できませんでした結論を出します。