メソッドのパラメーターを、特定のインターフェースを実装する任意のクラスとして指定するにはどうすればよいですか?
これは、目的 c ではかなり一般的です。
標準 C++ にはインターフェイスはありませんが、非常に簡単にシミュレートできます。
class IComparable
{
protected:
IComparable() {};
public:
virtual ~IComparable() = 0 {};
virtual int Compare(const IComparable& other) const = 0;
};
このクラスをインスタンス化する方法はありません。これは実質的にインターフェースです。次に、これから具体的なクラスを派生させることができます。
と呼ばれる「インターフェイス」または抽象基本クラスがあるBase
場合、そのインターフェイスを実装する任意のオブジェクトを受け入れることができる関数は次のようになります。
void fn(Base& obj) {
/*use Base functions on obj...*/
}