Re(2): Frage zu Headerdateien
Geizhals » Forum » Programmierung » Frage zu Headerdateien (13 Beiträge, 18 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.  Re: Frage zu Headerdateien  (Fly am 01.11.2002, 18:35:35)
..  Re(2): Frage zu Headerdateien  (Fly am 01.11.2002, 18:38:21)
..  Re(2): Frage zu Headerdateien  (Xmolch am 01.11.2002, 19:24:52)
..  Re(2): Frage zu Headerdateien  (Corban am 01.11.2002, 22:00:31)
.  Re: Frage zu Headerdateien  (Xmolch am 01.11.2002, 19:35:04)
..  Re(2): Frage zu Headerdateien  (Corban am 01.11.2002, 21:57:34)
...  Re(3): Frage zu Headerdateien  (Xmolch am 02.11.2002, 13:31:01)
....  Re(4): Frage zu Headerdateien  (Corban am 02.11.2002, 16:11:32)
..
Re(2): Frage zu Headerdateien
03.11.2002, 21:52:21
zu 1. noch ein beispiel:

angenommen, du hast eine klasse "Fortbewegungsmittel", von der die klassen "Auto", "Flugzeug" und "Schiff" abgeleitet sind.
all diese abgeleiteten klassen haben die methoden "beladen" und "entladen" - die aber komplett verschieden implementiert sein können.

du hast ein programm, in dem viele objekte aller 3 abgeleiteten klassen bunt durchgewürfelt gespeichert sind (in einer liste, einem array, whatever). du willst jetzt alle objekte durchgehen und jeweils die methode "beladen" aufrufen.

ohne virtuelle funktionen müsstest du in deinem programm jedesmal zuerst herausfinden, um welche klasse es sich handelt, und dann die methode dieser klasse aufrufen. das ist extrem umständlich, erzeugt viele zeilen unnötigen code und entspricht nicht dem prinzip der OOP.

wenn du aber in der mutterklasse die gemeinsamen methoden als "virtual" deklarierst, macht dir das system die typunterscheidung zur laufzeit. (d.h. du musst nicht selbst umständlich typechecking machen.)
mit virtuellen funktionen würde das beispiel so aussehen (syntax ist C# - aber der sinn sollte klar sein)

foreach (Fortbewegungsmittel myFBM in myList)
{
    myFBM.beladen();   // system überprüft, welches objekt vorliegt und ruft die
                                 // memberfunktion der entsprechenden klasse auf
}

dasselbe bsp ohne virtuelle funktionen (möglicherweise auch noch bei mehr abgeleiteten klassen) erzeugt zig zeilen code..



Antworten PM Alle Chronologisch Zum Vorgänger
 
Melden nicht möglich
...  Re(3): Frage zu Headerdateien  (Corban am 04.11.2002, 06:22:59)
....  Re(4): Frage zu Headerdateien  (joschi am 04.11.2002, 08:18:13)
.....  Re(5): Frage zu Headerdateien  (Corban am 04.11.2002, 17:32:44)
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung