C++ Überschreiben... überschreiben?
Ich weiß, was überschreiben ist in C++. Aber, ist es überschreiben? Wenn ja, was bedeutet es?
Dank.
InformationsquelleAutor der Frage Simplicity | 2011-01-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
In C++ - Terminologie, die Sie haben überschreiben (in Bezug auf virtuelle Methoden in einer Klassenhierarchie) und überlastung (bezogen auf eine Funktion mit dem gleichen Namen, aber verschiedene Parameter). Sie haben auch versteckt von Namen (über die explizite Deklaration mit dem gleichen Namen in einer verschachtelten deklarative region oder scope).
Den C++ - standard nicht verwenden den Begriff "überschreiben" außer in seiner kanonischen englische form (das heißt, zu ersetzen, die einen Wert mit einem neuen Wert zu, wie in der Zuordnung
x = 10
überschreibt den vorherigen Wert vonx
).InformationsquelleAutor der Antwort Josh
Können Sie überschreiben Variablen, z.B.
int a = 0; a = 42;
und Dateien (öffnet eine vorhandene Datei zum schreiben - wenn Sie die Erlaubnis haben, wird es überschreiben Sie den vorhandenen Inhalt der Datei), wenn das, was du meinst. Dies hat wenig in Bezug zu überschreiben. Waren Sie vielleicht denken zu überladen?InformationsquelleAutor der Antwort marcog
Den üblichen Unterscheidung, die ich bin vertraut mit der überschreiben und überladen.
Virtuelle Funktionen sind außer Kraft gesetzt. Funktionen sind überladen, wenn es eine version mit demselben Namen, aber unterschiedlicher Signatur (dieser existiert in vielen Sprachen). In C++ können auch Operatoren überladen werden.
AFAIK überschreiben ist ein anderes Konzept (überschreiben eine variable, Datei, Puffer, etc.), und ist nicht spezifisch für C++ oder auch OOP-Sprachen.
InformationsquelleAutor der Antwort Uri
Überschreiben ist die "normale Sache" in OOP: Eine abgeleitete Klasse eine andere (d.h. spezialisierten) Umsetzung für etwas, das überschreiben der Basisklasse, z.B.
apple::foo()
überschreibtfruit::foo()
wenn apple ist eine Klasse, die von Obst. (nicht zu verwechseln mit überlastung mit unterschiedlichen parameter-Signaturen, die führt zu völlig unterschiedlichen Funktionen).Überschreiben ich weiß, wie vollständig ersetzen mit einem anderen-definition. Nicht auf einem bestimmten Niveau, sondern im Allgemeinen für den Rest des Programms. Dies wird manchmal verwendet javascript, wenn Sie einen großen Rahmen hat einige spezielle Fragen, und Sie wollen nicht zu zerreißen, wird die große Datei auseinander:
Jedoch: ich kenne keine solche Sache in C++, als einen zustimmenden Neudefinition einer Funktion führt immer zu Fehlern bereits zur Kompilierzeit. Bei den meisten kann ich imaginge verbiegen von Funktionszeigern, oder (neu -) Definition call back Haken.
InformationsquelleAutor der Antwort Frank Nocke