¿Hay alguna razón para hacer que los permisos en una función virtual C++ anulada sean diferentes de la clase base? ¿Hay algún peligro al hacerlo?Anulación de las funciones virtuales públicas con funciones privadas en C++
Por ejemplo:
class base {
public:
virtual int foo(double) = 0;
}
class child : public base {
private:
virtual int foo(double);
}
El C++ faq dice que es una mala idea, pero no dice por qué.
He visto este modismo en algún código y creo que el autor estaba tratando de hacer que la clase sea definitiva, basándose en la suposición de que no es posible anular una función de miembro privada. Sin embargo, This article muestra un ejemplo de funciones privadas primordiales. Por supuesto, another part of the C++ faq recomienda no hacerlo.
Mis preguntas concretas:
¿Hay algún problema técnico con el uso de un permiso diferente para métodos virtuales en las clases derivadas vs clase base?
¿Hay alguna razón legítima para hacerlo?
reinventando "protegido" ¿o sí? –