Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 16.10.2002, 07:25 Titel: Polymorphie, ein Beispiel? |
|
|
Hi all!
Ich wollte mal fragen ob mir jemand ein gutes Beispiel zu Funktionspolymorphie geben kann, da ich nicht einsehe warum man zwei oder mehrere Funktionen gleich nennen sollte/muss. _________________ Greetz CorDharel |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 16.10.2002, 16:58 Titel: |
|
|
Meinst du sowas?
Code: |
int Multiplikation(int a, int b)
{
return a*b;
}
int Multiplikation(int a, int b, int c)
{
return a*b*c;
}
|
|
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 16.10.2002, 18:08 Titel: |
|
|
Noch ein einfaches Beispiel:
class Output
{
void Print(int);
void Print(float);
void Print(char*);
// usw.
}; |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 16.10.2002, 18:10 Titel: |
|
|
Hi,
ich glaub das ist Überladung von Funktionen, was du meinst, VH.
Ich glaube Polymorphie ist folgendes: Man hat zB eine Basis Klasse(A) und zwei Abgeleitete Klassen(B und C), die jeweils eine eigene Funktion F(void) haben. Wenn man jetzt über einen Zeiger vom Typ der Basisklasse, der zB auf C zeigt die Funktion F() aufruft wird die Funktion F() von C aufgerufen. Zeigt der Zeiger auf B, wird F() von B aufgerufen! |
|
Nach oben |
|
|
Sören JLI Master Trainee
Anmeldedatum: 26.07.2002 Beiträge: 647 Wohnort: Bonn Medaillen: Keine
|
Verfasst am: 16.10.2002, 18:19 Titel: |
|
|
Achja, ein Beispiel:
Du hast die Klasse CPlayer, die du als Basisklasse für alle Spielfigurenarten auswählst. Von CPlayer leitest du CAlien und CHuman ab. Allerdings müssen die beiden auf unterschiedlicher Art(warum auch immer!) auf den Bildschirm gezeichnet werden(zB ist CAlien animiert und CHuman nicht, aber ich schweife ab!). Jetzt siehst du für beide eine Draw() Funktion vor. In deiner Engine hast du einen Zeiger(zB pPlayer) , vom Typ der Basisklasse(CPlayer) auf das Objekt, welches der Spieler spielt. Wenn du die Figur zeichnen willst, machst du folgendes:
pPlayer->Draw();
Ganz gleich ob das Objekt, auf das gezeigt wird CHuman oder CAlien ist. Es wird die jeweilige Draw() Funktion aufgerufen!
PS: Ich hoffe du konntest das nachvollziehen, wenn nicht dann frag einfach! |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 16.10.2002, 18:52 Titel: |
|
|
Jea danke! Deines, MB, war ein wenig weitgreifend, hat aber seinen Zweck erfüllt
Zitat: | ich glaub das ist Überladung von Funktionen, was du meinst, VH.
|
Zitat aus dem Buch: Das Überladen von Funktionen wird auch als Funktionspolymorphie bezeichnet Hab ich gerade gesehen _________________ Greetz CorDharel |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 16.10.2002, 19:02 Titel: |
|
|
Cool, ich hab zwar das Buch nicht da, und trotzdem richtig geraten |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 17.10.2002, 08:05 Titel: |
|
|
ist Polymorphie das griechische/italienische/japanische/wasweissichwelchesprachische wort für Überladen _________________ Greetz CorDharel |
|
Nach oben |
|
|
VerruecktesHuhn Super JLI'ler
Anmeldedatum: 30.07.2002 Beiträge: 492 Wohnort: Stuttgart Medaillen: Keine
|
Verfasst am: 17.10.2002, 10:51 Titel: |
|
|
So viel ich weiß, kommt es aus dem Altgriechischen und heißt soviel wie "Vielgestaltigkeit". "Poly" heißt glaub immer was wie viel (Polyphonie, Polytheismus,...) und morphus oder so ist glaub die gestalt (morphen oder so). |
|
Nach oben |
|
|
CorDharel Junior JLI'ler
Anmeldedatum: 15.10.2002 Beiträge: 73 Wohnort: Winterthur, Zürich, CH Medaillen: Keine
|
Verfasst am: 21.10.2002, 06:59 Titel: |
|
|
Die Vielgestaltigkeit einer Funktion vielleicht _________________ Greetz CorDharel |
|
Nach oben |
|
|
|