Größenkonflikt
-
Zu später Stunde noch so eine Anfängerfrage, zum Abspannen

Kleines Uebungsprogramm:#include <iostream> using namespace std; class SimpleCat { public: SimpleCat() {itsAge = 2;} ~SimpleCat() {} int getAge() const {return itsAge;} void setAge(int age) {itsAge = age;} private: int itsAge; }; int main() { SimpleCat *Kimba = new SimpleCat; cout <<"Kimba ist " <<Kimba->getAge<< " Jahre alt\n"; Kimba->setAge(5); cout <<"Kimba ist " <<Kimba->getAge<< " Jahre alt\n\n"; delete Kimba; return 0; }ergibt:
warning C4761: Größenkonflikt im Argument. Konvertierung vorgenommenDas Warnung verweist auf die beiden cout-Befehle.
Wenn ich mit dem Debugger die Werte in setAge ansehe stimmen die.
Im Programm wird mir aber immer ein Wert von 1 angezeigt
-
Ich denke es sollte
Kimba->getAge()heissen ;).
mfg
v R
-
virtuell Realisticer schrieb:
Ich denke es sollte
Kimba->getAge()heissen ;).
mfg
v RUnd was sagt mir das?
Wer lesen kann ist klar im Vorteil!
Solche Fehler sind schon richtig peinlich
Wird Zeit für`s Bett.Danke

-
Roland.K schrieb:
virtuell Realisticer schrieb:
Ich denke es sollte
Kimba->getAge()heissen ;).
mfg
v RUnd was sagt mir das?
Wer lesen kann ist klar im Vorteil!
Solche Fehler sind schon richtig peinlich
Nana, passiert. Und so lange es nur solche Fehler sind, isses ja gut :).
mfg
v R
-
Wie unterschiedlich die Compiler reagieren. Bei Dev-C++:
"no match for `std::basic_ostream<char, std::char_traits<char> >& << <unknown type>' operator" (error)
Wenn ich umstelle auf:int x = Kimba->getAge; cout <<"Kimba ist " << x << " Jahre alt\n";meldet er: "cannot resolve overloaded function `getAge' based on conversion to type `int'" (error)
Diese Meldung empfinde ich als hilfreich, weil man dann über obj->getage als merkwürdige Member-Funktion nachdenkt.
-
Hm, ich denke, dass eventuell die Ausgabe mit << und nem Integer besser mit
cout << IntToStr(Kimba->getAge());laufen könnte...
-
nein.
einmal ist IntToStr borland (glaub ich, bin keine borländerin), kein standard.
zum zweiten war das problem, wie oben schon benannt: die fehlenden klammern.erhard wollte nur auf die unterschiedlichen kompilermeldungen aufmerksam machen.
die instanz 'cout' kann einen integer ohne probleme ausgeben.
-
Erhard Henkes schrieb:
"cannot resolve overloaded function `getAge' based on conversion to type `int'" (error)
Diese Meldung empfinde ich als hilfreich, weil man dann über obj->getage als merkwürdige Member-Funktion nachdenkt.Hallo,
ja, das ist eine Fehlermeldung mit der man als Neuling der Sache auf den Grund kommen kann.
Ich kenne zwar mittlerweile die meisten meiner (Tipp)Fehler (: statt ; fehlendes; usw.) und weis dann auch sehr schnell wo ich suchen muss, aber manchmal sind eben nicht nur Justizias Augen blind!
-
elise schrieb:
einmal ist IntToStr borland (glaub ich, bin keine borländerin), kein standard.
Auch wenn du's nicht bist, du hast recht. Ist Borland
