@hound406

Переопределение чистых виртуальных функций в C++?

Добрый день, есть некий базовый класс и от него необходимо сделать, например, 2 наследника.
У наследников должен быть некий метод у которого могут быть разные параметры. Вот пример:
Class Base {
	virtual void setSettings(int val);
	virtual void setSettings(int val1, float val2);
}

Class child1: public Base {
	void setSettings(int val);
}

Class child2: public Base {
	void setSettings(int val1, float val2);
}


Если методы setSettings определить чистыми виртуальными, то компилятор ругается, что в потомках не переопределен метод. Можно в базовом классе и не делать их чистыми, но так не много портится эстетика, что ли)
В общем, кто как поступает в данной ситуации?
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 2
Adamos
@Adamos
Если методы в дочерних классах различаются - значит, их не должно быть в родительском.
Учите L в SOLID.
Ответ написан
Комментировать
Так особого выбора у вас и нет. Либо не чисто виртуальные, либо всё переопределяете в наследниках. Разницы никакой, за исключением невозможности создания объекта базового класса во втором случае.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы