Problem mit Konstruktor



  • Ich bin grad am lesen eines c++ buches, komme aber nur ganz langsam voran.
    hab jetzt bei einer der aufgaben ein problem.
    Hab die klasse mitglied, die als member einen namen, eine nr und ein datum der klasse Datum hat.
    der konstruktor nimmt auch genau das als argumente. trotzdem zeigt er mir immer an, dass keine instanz des konstruktors mit der argumentenliste übereinstimmt.

    Mitglied m2(3, "Vladislav", Datum(3,3,2));
    

    hier ist der konstruktor der klasse datum:

    Mitglied(int nr, string name, const Datum& geburtsdatum):geb(geburtsdatum)
    	{
    
    		this->nr=nr;
    		this->name=name;
    
    	}
    

    für mich sieht das nach einer passenden argumentenliste aus, trotzdem geht es nicht.
    der andere konstruktor der statt dem datum nur 3 ints nimmt, funktioniert.
    hat jemand eine idee?



  • Also für mich sieht das auch in Ordnung aus. Der Hund muss wo anders begraben sein. Vielleicht hast du ein kompilierbares Beispiel?



  • Poste mal deinen ganzen Code. Das sieht soweit in Ordnung aus. Vielleicht liegt das Problem auch im Konstruktor von Datum.



  • Nikolei schrieb:

    hier ist der konstruktor in der klasse datum:

    Mitglied(int nr, string name, const Datum& geburtsdatum):geb(geburtsdatum)
    	{
    		//...
    	}
    

    Huh? Wieso der Konstruktor in _Datum_?



  • Furble_wurble schrieb:

    Nikolei schrieb:

    hier ist der konstruktor in der klasse datum:

    Mitglied(int nr, string name, const Datum& geburtsdatum):geb(geburtsdatum)
    	{
    		//...
    	}
    

    Huh? Wieso der Konstruktor in _Datum_?

    hab mich verschrieben, der konstruktor ist natürlich in der header datei mit der mitglied klasse.
    hab jetzt ein neues projekt erstellt, da scheint es zu gehen.
    bei dem anderen projekt kam noch dieser fehler:

    error C2011: 'Datum': 'class' Typneudefinition
    

    an der stelle wo ich zum ersten mal die datum klasse definiert hab.
    ich wüsste nicht wo ich die klasse schon definiert hätte.
    bei java war alles viel einfacher, vor allem wegen eclipse, wo immer vorschläge für fehlerbehebung angezeigt wurden...



  • Nikolei schrieb:

    wo immer vorschläge für fehlerbehebung angezeigt wurden...

    Das schaffst mit Visual Studio Express + Visual Assist doch auch. Oder werden Fehler nur unterstrichen, weiß gar nicht mehr...



  • Gugelmoser schrieb:

    Nikolei schrieb:

    wo immer vorschläge für fehlerbehebung angezeigt wurden...

    Das schaffst mit Visual Studio Express + Visual Assist doch auch. Oder werden Fehler nur unterstrichen, weiß gar nicht mehr...

    Vorschläge für Fehlerbehebung zeigt VAX keine an. VAX unterkringelt nichtmal Syntax-Fehler. VAX unterkringelt nur Tippfehler, also wenn du nen Bezeichner verwendest den es nicht gibt.

    Wenn dann macht das beides VS selbst. Ab VS 2010 werden (Syntax-)Fehler soweit ich weiss unterkringelt, und ich glaube mich auch zu erinnern dass beim Mouse-Over die Fehlermeldung angezeigt wird. Die dann manchmal (wenn auch eher selten) einen Tip/Vorschlag zur Behebung enthält.


Anmelden zum Antworten