JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=5d94bd0464704a2ce26fcac1678be70fMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Polymorphie, ein Beispiel?

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
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

BeitragVerfasst am: 16.10.2002, 07:25    Titel: Polymorphie, ein Beispiel? Antworten mit Zitat

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. Confused
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 16:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 18:08    Titel: Antworten mit Zitat

Noch ein einfaches Beispiel:

class Output
{
void Print(int);
void Print(float);
void Print(char*);
// usw.
};
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 18:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Sören
JLI Master Trainee



Anmeldedatum: 26.07.2002
Beiträge: 647
Wohnort: Bonn
Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 18:19    Titel: Antworten mit Zitat

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! Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 18:52    Titel: Antworten mit Zitat

Jea danke! Deines, MB, war ein wenig weitgreifend, hat aber seinen Zweck erfüllt Wink

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 Smile Hab ich gerade gesehen Cool
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 16.10.2002, 19:02    Titel: Antworten mit Zitat

Cool, ich hab zwar das Buch nicht da, und trotzdem richtig geraten Wink Cool
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 08:05    Titel: Antworten mit Zitat

ist Polymorphie das griechische/italienische/japanische/wasweissichwelchesprachische wort für Überladen Question Very Happy
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
VerruecktesHuhn
Super JLI'ler



Anmeldedatum: 30.07.2002
Beiträge: 492
Wohnort: Stuttgart
Medaillen: Keine

BeitragVerfasst am: 17.10.2002, 10:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
CorDharel
Junior JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 73
Wohnort: Winterthur, Zürich, CH
Medaillen: Keine

BeitragVerfasst am: 21.10.2002, 06:59    Titel: Antworten mit Zitat

Die Vielgestaltigkeit einer Funktion vielleicht Wink
_________________
Greetz CorDharel
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum