Я думаю, что у меня нет какой-то базовой концепции виртуального поведения.Я хочу создать следующую иерархию:
class Parser{
virtual Parsable parse() = 0;
}
class SpecialParser : public Parser{
SpecialParsable parse() override; // implemented
}
Где явно SpecialParsable
класс наследует от Parsable
.
Это возвращает мне ошибку из-за другой подписи.(SpecialParser::parse() returns SpecialParsable instead of Parsable)
.
Теперь, Parsable - это явно абстрактный класс, и я не хочу, чтобы его можно было создавать.Я не понимаю, почему не должно быть возможности сделать это, поскольку SpecialParsable - это только конкретная реализация Parsable.
Заранее спасибо,