Кто-нибудь знает о языковой функции или методе на С++, чтобы предотвратить использование дочернего класса определенного метода в родительском классе?
class Base {
public:
bool someGuaranteedResult() { return true; }
};
class Child : public Base {
public:
bool someGuaranteedResult() { return false; /* Haha I broke things! */ }
};
Несмотря на то, что он не является виртуальным, это все равно разрешено (по крайней мере, в компиляторе Metrowerks, который я использую), все, что вы получаете, - это предупреждение времени компиляции о скрытии не виртуальной унаследованной функции X.