En una clase derivada Si redefino/sobrecarga un nombre de función de una clase Base,
, esas funciones sobrecargadas no son accesibles/visibles para la clase derivada.
¿Por qué es esto?las funciones sobrecargadas están ocultas en la clase derivada
Si no sobrecargar la función oveloaded de la clase base en la clase derivada entonces todas las versiones sobrecargadas de esa función están disponibles para los derivados de clase
objetos, ¿por qué es esto ??
cuál es la razón detrás de esto. Si explica esto en el compilador y en el nivel de vinculador
, será más útil para mí. ¿No es posible apoyar este tipo de scinario?
Edited For examble: class B { public: int f() {} int f(string s) {} }; class D : public B { public: int f(int) {} }; int main() { D d; d.f(1); //d.f(string); //hidden for D } Now object 'd' can't access f() and f(string).
Podría publicar algún código de ejemplo, su descripción no está clara en absoluto. –
posible duplicado de [¿Por qué una función anulada en la clase derivada oculta otras sobrecargas de la clase base?] (Http://stackoverflow.com/questions/1628768/why-does-an-overridden-function-in-the- derived-class-hide-other-overloads-of-the) – sbi
@sbi Lamento publicar una pregunta duplicada. En realidad, intenté por un tiempo si había alguna pregunta similar pero no encontré ninguna. Mi patrón de búsqueda era incorrecto, eso no ha encontrado la pregunta existente. – esh