抽象基本クラス X を定義し、次のことを強制したいと思います。
a) X から継承するすべての具体的なクラス Y は、コンストラクター Y(int x) を定義します
b) 2 つの Y オブジェクトが等しいかどうかをテストできる必要があります。
aの場合、あまり良くない解決策の1つは、具象クラスが定義する必要がある純粋な仮想fromIntメソッドをXに入れることです。しかし、私は建設を強制することはできません。
b)については、Xで純粋仮想メソッドを使用できないようです
bool operator == (const X& other) const =0;
オーバーライドされたクラスでは、これは未定義のままであるためです。定義するだけでは不十分
bool operator == (const Y& other) const { //stuff}
タイプが合わないからです。これらの問題を解決するにはどうすればよいですか?