У меня есть существующий класс, который объявляет виртуальный метод и определяет реализацию по умолчанию. Теперь я хочу перегрузить этот метод другим параметром, а также дать реализацию по умолчанию. Дополнительно я хочу установить ограничение, что , если первый метод был переопределен подклассом , то второй (перегруженный) виртуальный метод также должен быть переопределен .
Возможно ли такое даже внутри C ++? Если да, возможно ли это во время компиляции?
Пример кода:
class ParamA {};
class ParamB {};
class Base
{
public:
virtual void method(ParamA a)
{
// default behavior
}
virtual void method(ParamB b)
{
// default behavior
}
}
class Derived : public Base
{
public:
virutal void method(ParamA)
{
// special behavior
}
}
Моя цель - обнаружить классы типа Derived
и заставить их реализовать свою версию метода (ParamB b)
.