Найдено результатов: 1

Есть ли способ предотвратить переопределение метода в подклассах?

Кто-нибудь знает о языковой функции или технике в C++, чтобы предотвратить чрезмерное использование дочерним классом определенного метода в родительском классе?

class Base {
public:
    bool someGuaranteedResult() { return true; }
};

class Child : public Base {
public:
    bool someGuaranteedResult() { return false; /* Haha I broke things! */ }
};

Даже если он не является виртуальным, это все равно разрешено (по крайней мере, в компиляторе Metrowerks, который я использую), все, что вы получаете, - это предупреждение о времени компиляции о скрытии невиртуальной наследуемой функции X.

c++   override   metrowerks    

643   14   16:31, 27th August, 2020