64 C:\Dev-Cpp\lernen\vererbung.cpp `Otto' undeclared (first use this function)
-
Erstmal guten Tag.
Ich lerne gerade C++ und bin grade die Vererbung am durchnehmen
Diesen Code habe ich geschrieben, allerdings erhalte ich folgenden Fehler:
64 C:\Dev-Cpp\lernen\vererbung.cpp `Otto' undeclared (first use this function)Es scheint an der oberen If Abfrage zu liegen (ob unfaierer oder normaler automat), erst in der if struktur wird "otto" erstellt.
Der Compiler denkt wohl das Objekt exisitere nicht.Was nun?
Ich kann ja das Objekt schlecht 2 mal definieren...Über Antworten würde ich mich freuen

mfg, root
-
-
ceplusplus@loggedoff schrieb:
http://tutorial.schornboeck.net/scope.htm
MfG
Wie oben gesagt das weiß ich ja selber. Die Frage ist wie mach ich das jetzt.
-
evtl. so (als Grundgerüst). Natürlich das löschen, Test auf Nullpointer etc. nicht vergessen.
Bitte ersetz auch das goto durch eine Schleife.ColaAutomat* Otto(0); if(colatype==1) { preis = 50; Sleep(3000); Otto = new ColaAutomat; } else if(colatype==2) { preis = 500; Sleep(3000); Otto = new UeberteuerterColaAutomat; }
-
gleicher fehler
-
Dann zeig bitte mal deinen jetzigen Code.
-
-
Das kann eigentlich nicht mehr der gleiche Fehler sein.
Der Zugriff auf die Memberfunktionen muß jetzt natürlich anders sein. Immerhin ist Otto jetzt ein Zeiger.geld = Otto->zeigegeld();
-
Funktioniert!
Danke dir!
-
delete nicht vergessen
-
wtf is delete? xD
wie gesagt ich lerns grade erst.
-
-
ok jetzt ist der code so:
allerdings scheint da was nich ganz zu funktionieren...
Es wird nämlich immer die funktion für den normalen Automaten aufgerufen, nicht für den unfairen...
Beispiel:
Mann wählt den unfairen automaten, wirft 100 ein.
Dann sollte eigentlich angezeigt werden, dass 50 eingeworden wurden, aber es wird angezeit, dass 100 eingeworfen wurden (also die normale methode).
-
schau mal hier
http://tutorial.schornboeck.net/virtual.htm
-
Endlich! Es geht!
Vielen Dank für deine Mühe!
Hier noch der fertig Source:
http://pastebin.com/m5dfe6d5f