Я хотел бы определить абстрактный базовый класс X и применить следующее:
a) каждый конкретный класс Y, который наследуется от X, определяет конструктор Y (int x)
b) должна быть возможность проверить, равны ли два объекта Y.
Для одного, не очень хорошего решения - поместить чисто виртуальный метод fromInt в X
какой конкретный класс придется определить. Но я не могу навязать строительство.
Для б) я не могу использовать чисто виртуальный метод в X
bool operator == (const X& other) const =0;
потому что в переопределенных классах это остается неопределенным. Недостаточно определить
bool operator == (const Y& other) const { //stuff}
потому что типы не совпадают. Как мне решить эти проблемы?