In einer abgeleiteten Klasse Wenn ich einen Funktionsnamen aus einer Base-Klasse,
, neu definieren/überladen, sind diese überladenen Funktionen nicht zugänglich/sichtbar für abgeleitete Klasse.
Warum ist das ??Überladene Funktionen sind in der abgeleiteten Klasse verborgen
Wenn wir die oveloaded Funktion von der Basisklasse nicht dann in abgeleiteten Klasse überlasten alle überladenen Versionen dieser Funktion abgeleiteten Klasse
Objekte verfügbar sind, warum ist das ??
Was ist der Grund dafür? Wenn Sie dies im Compiler und Linker Ebene
erklären, die für mich hilfreicher sein wird. Ist es nicht möglich, diese Art von Scinario zu unterstützen?
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).
Konnten Sie einen Beispielcode posten, Ihre Beschreibung ist überhaupt nicht klar. –
mögliches Duplikat von [Warum versteckt eine überschriebene Funktion in der abgeleiteten Klasse andere Überladungen der Basisklasse?] (Http://stackoverflow.com/questions/1628768/why-does-an-overridden-function-in-the- derived-class-hide-other-overloads-of-the) – sbi
@sbi Es tut mir leid, eine doppelte Frage zu stellen. Eigentlich habe ich eine Zeitlang versucht, ähnliche Fragen zu stellen, aber ich habe keine gefunden. Mein Suchmuster war falsch, so dass Sie die bestehende Frage nicht gefunden haben. – esh