Dado que hemos sobrecargado métodos de la clase base, y una clase derivada que se hereda como privado/protegido.Declaración de Acceso Base Clase Método sobrecargado
- ¿Podemos restaurar solo uno/varios del nivel de acceso original de los métodos sobrecargados?
- En GCC 4.4.0 Trato de poner los métodos de base bajo acceso protegido, a continuación, heredó el uso de acceso privado. Cuando trato de restaurar el nivel de acceso a público, ¡funciona! ¿Es así como se supone que debe funcionar? o es un error en el compilador? A mi entender, la restauración del nivel de acceso no debería poder usarse para promover o degradar el nivel de acceso de un miembro.
Código fragmento:
class base {
public:
void method() {}
void method(int x) {}
protected:
void method2() {}
};
class derived : private base {
public:
base::method; // Here, i want to restore only the none parameterized method
base::method2; // method2 is now public??
};
Por cierto, es una declaración como 'base :: method' exactamente equivalente a' usando la base :: method'? – Kos
@Kos, sí, pero ya no es válido decir 'base :: method;' en C++ 0x. Fue eliminado por el borrador n3225. –