Veröffentlicht 17. April 200322 j Hi zusammen hier erstmal etwas QT: #include <iostream.h> #include <conio.h> class qm { float laenge, breite, ergebnis; void calc (); public: qm(float l, float ; qm(void); void get (); }; qm::qm(float lae=0, float bre=0) { laenge=lae; breite=bre; ergebnis=0; } qm::qm(void) { laenge=100; breite=100; ergebnis=0; } void qm::calc () { ergebnis=laenge*breite; } void qm::get () { qm::calc(); cout << endl << laenge << endl; cout << endl << breite << endl; cout << endl << ergebnis << endl; } int main () { qm test; test.get(); getch(); } Nun ist mein Problem, dass sich der parameterlose Kosntruktor nicht mit meinem Konstruktor mit Parameter verträgt. Wenn ich einen raus schmeisse dann tuts. Oder kann ich Konstruktoren garnicht überladen ? Fehlermeldung: Ambiguity between qm::qm(float,float) and qm::qm() Danke für Hilfe cya alligator
17. April 200322 j Die beiden Konstruktoren qm::qm(float,float) und qm::qm() sind auch ambiguous, da Du folgendes Konstrukt verwendest: qm::qm(float lae=0, float bre=0). Der Compiler kann in diesem Fall nicht entscheiden, welcher Constructor verwendet werden soll, da es zwei parameterlose gibt, die matchen. Nic
17. April 200322 j Autor Hi hmm versteh ich nicht, denn qm::qm(float lae=0, float bre=0). ist doch nicht parmeterlos, sondern es wird nur ein Standardparameter gesetzt. Aber recht hast du, dass es tut wenn ich =0 wegmachen ... cya alligator
19. April 200322 j Original geschrieben von alligator Hi hmm versteh ich nicht, denn qm::qm(float lae=0, float bre=0). ist doch nicht parmeterlos, sondern es wird nur ein Standardparameter gesetzt. Aber recht hast du, dass es tut wenn ich =0 wegmachen ... cya alligator ups text verschwunden, nochmal: du hast schon recht, qm::qm(float lae=0, float bre=0) ist nicht parameterlos! Allerdings ist durch das setzen der Default-Werte auch der Aufruf ohne parameter legitim!!! Dies wiederspricht sich mit den Defaultkonstruktor!
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.