определенный метод базового класса?
Да, сделать метод абстрактным (pure virtual) class ParentC { void AbstractF1() = 0; // ... };
если переопределим его в B, то в С будет не обязательно, если С отнаследован от B
Так вряд ли можно
я так и думал. Спасибо
Так а как так? я не понял...
Ты хочешь что ли каждый класс заставить что-то переопределять?
да. Чтобы при компиляции ругалось - ты не определил имя класса. Быстро определи!
Ну , делай множественное наследование и каждый класс ещё и от абстрактного фигарь... Но легче всего просто определять все нужные методы. Ну и по идее в 20ом можно концепт написать ...
Это все равно неявно будет
Я рекомендую пока остановиться на простом методе — взять листок бумаги на каждый наследник и там ставить галочки на каждый метод.
Лучше просто сделать тесты на каждый класс с проверкой правильности имени класса
А предполагается полиморфное использование этого метода?
Где-как. Спасибо за помощь. Пока отложу это и займусь более приоритетными задачами
есть решение - вынудить пользователя писать в каждом классе static const char* get_class_name(tag<T>), где T - текущий класс и template <class> struct tag{}; тогда делается шаблонный метод/функция template <class T> const char* get_class_name() { return T::get_class_name(tag<T>{}); } и всё работает. тег нужен, чтобы "отключить" наследование
Только полиморфно опять не будет работать
есть такое, увы
Обсуждают сегодня