質問: c++でインターフェースをどのように宣言しますか? インターフェイスを表すクラスを設定する方法これは単なる抽象基底クラスですか?
回答: 上記のすべての良い答え。あなたが心に留めておくべきもう一つのこと - あなたは純粋な仮想デストラクタを持つこともできます。唯一の違いは、それを実装する必要があるということです。混乱した? --- header file ---- class foo { public: foo() {;} virtual ~foo() = 0; virtual bool overrideme() {return false;} }; ---- source ---- foo::~foo() { } あなたがこれをしたいと思う主な理由はあなたが私が持っているようにインターフェースメソッドを提供したいが、それらをオーバーライドすることをオプションにしたいならばです。クラスをインタフェースクラスにするには純粋仮想メソッドが必要ですが、すべての仮想メソッドにはデフォルトの実装があるため、純粋仮想にするために残されている唯一のメソッドはデストラクタです。派生クラスでデストラクタを再実装することは大したことではありません - 私は、派生クラスで仮想かどうかに関係なく、デストラクタを常に再実装します。