bZGL Konstruktor
-
KFZ Header
#ifndef KFZ_H #define KFZ_H #include <iostream> class KFZ { public: // Standartkonstruktor KFZ(); // Konstruktor KFZ(char* nHersteller, char* Typ, int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht); // Alles Zeigen void Show(); // Attribute private: char* Hersteller; char* Typ; int Tankgr; double Verbrauch100Km; double Tankinhalt; double KmStand; double Gewicht; }; #endifKFZ.cpp
#include <iostream> #include "KFZ.h" using namespace std; KFZ::KFZ(char* nHersteller, char* nTyp,int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht): Hersteller(nHersteller),Typ(nTyp),Tankgr(nTankgr), Verbrauch100Km(nVerbrauch100Km), Tankinhalt(nTankinhalt), KmStand(nKmStand), Gewicht(nGewicht) {} void KFZ::Show() { cout<< "Hersteller : "<< Hersteller<<endl; cout<< "Typ : "<< Typ<<endl; cout<< "Tankgroeße : "<< Tankgr <<endl; cout<< "Verbrauch auf 100 Km : "<< Verbrauch100Km <<endl; cout<< "Tankinhalt zurzeit : "<< Tankinhalt <<endl; cout<< "Aktueller Km Stand : "<< KmStand <<endl; cout<< "Zulässiges Gewicht : "<< Gewicht <<endl; }main.cpp
#include <iostream> #include "KFZ.h" //#include "LKW.h" using namespace std; int main() { KFZ Audi("Audi","R8",50,16.8,30.5,100000,1.0); //LKW Mercedes(2,1,40.5); Audi.Show(); //Mercedes.Show2(); system("pause"); return 0; }Hier gibt er mir Ohne Probleme ein KFZ aus....
Wenn ich aber hier eineLkw.h
#ifndef LKW_H #define LKW_H #include <iostream> #include "KFZ.h" class LKW : public KFZ { public: // Konstruktor LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter); void Show2(); // Attribute private: int AnzahlAchsen; int Anhaenger; double laengeMeter; }; #endifund eine LKW.cpp
#include <iostream> #include "LKW.h" using namespace std; LKW::LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter): AnzahlAchsen(nAnzahlAchsen),Anhaenger(nAnhaenger),laengeMeter(nlaengeMeter){} //show void LKW::Show2() { cout<< "Anzahl der Achsen : "<< AnzahlAchsen<<endl; cout<< "Typ : "<< Anhaenger<<endl; cout<< "laengeMeter : "<< laengeMeter<<endl; }einbinde und in der lkw.h #include "KFZ.h" mache und die main auskommentier...bekommt er Probleme obwohl alles genauso ist wie voher ......
Wieso bitte ==??
-
Ignoriere doch meinen Post komplett...
Du hast eine Klasse KFZ, die hat (vereinfacht) nur einen Kilometerstand und einen Modellnamen.
class KFZ { unsigned int kilometer_stand_; std::string modell_name_; public: KFZ(unsigned int kilometer_stand, std::string modell_name) : kilometer_stand_(kilometer_stand), modell_name_(modell_name) {} };Soweit alles klar, oder?
Nun hast du eine Klasse LKW, die zusätlich speichert, ob der LKW einen Anhänger hat.
class LKW : public KFZ { bool anhaenger_; public: LKW(unsigned int kilometer_stand, std::string modell_name, bool anhaenger) : KFZ(kilometer_stand_, modell_name_), anhaenger_(anhaenger) {} };Der Ktor nimmt nun die Parameter entgegen, die ein KFZ und ein LKW braucht. Die KFZ-Parameter werden an den Konstruktor für das KFZ weitergegeben und die LKW Parameter an die Konstruktoren der Daten für einen LKW. (wobei Konstruktoren hier nicht ganz richtig ist, aber stelle dir das so vor)
Edit: Na super, zu langsam geschrieben. -.-
-
ja so hab ich das doch ... versucht geht ja nicht bitte mal in mein Beispiel schaun..
wenn ich das dann versuche mit den zusatzatributen
dann meckert er hier über den :
LKW::LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter): AnzahlAchsen(nAnzahlAchsen),Anhaenger(nAnhaenger),laengeMeter(nlaengeMeter): KFZ(char* nHersteller, char* Typ, int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht){}
-
Du hast einen Konstuktor KFZ(); deklariert, der aber nirgends definiert wurde.
Daher meckert der Compiler.
Du sagst also dass es eine Funktion gibt, die aber nirgends implementiert wird. Das geht genau so lange gut, bis du versuchst sie aufzurufen.Und da du beim LKW versuchst KFZ::KFZ() aufzurufen, geht es nicht mehr, sobald du den LKW mit drinnen hast.
MisterBasisklasse schrieb:
dann meckert er hier über den :
LKW::LKW(int nAnzahlAchsen,int nAnhaenger, double nlaengeMeter): AnzahlAchsen(nAnzahlAchsen),Anhaenger(nAnhaenger),laengeMeter(nlaengeMeter): KFZ(char* nHersteller, char* Typ, int nTankgr,double nVerbrauch100Km,double nTankinhalt,double nKmStand,double nGewicht){}OMFG
Ja, das geht nicht, weil die Syntax totaler Schwachsinn ist.MisterBasisklasse schrieb:
Wie spät ist es?
Zeit C++ zu lernen.
-
MisterBasisklasse schrieb:
ja so hab ich das doch ...
Nein.
Vergleich nochmal deins und das was Nathan geschrieben hat, vielleicht fallen dir dann die Unterschiede auf.
-
versuche den Konstruktor mit den Attributen aufzurufen... und nicht den Default konstruktor... und diese ist in der Header Datei vorhanden oder nicht?? und ebenfalls in der Kfz cpp...
-
Nochmal: Nathan hat's dir vorgekaut. Lies es!
Was Du da machst hat mit einem Aufruf nichts zu tun.
-
Hallo... könnte mir das einer evtl mal über einen Messager oder so erklären das hier wird nichts... immer durcheinander die arbeit das tausend mal zu posten.... gerne bezahl ich ihm auch den Stundenlohn.
macht so keinen spass ich sag 1000 mal es geht nicht muss ein andere fehler sein ... keiner kann mir vernünftig von anfang bis ende das erklären..
-
Mache einfach einen Zeichen für Zeichen-Vergleich beim Konstruktoraufruf zwischen deiner und meiner Version...
Andererseits: Wie hoch ist der Stundenlohn?
-
Nathan kontaktier mich einfach via icq oder Skype .... dann zeig ich dir geanu was ich habe und was das Problem ist.. hier kommt leider alles falsch rüber
-
Nö, kommt es nicht, du kannst bloss nicht lesen.
-
...
-
Er hat mir noch nicht einmal seinen Namen gegeben...
Und einen MisterBasisklasse scheint es bei Skype nicht zu geben.
-
Es wurde dir bereits eine Mail zukommen gelassen.. über das Portal hier.
-
Kann ich noch eine Rückmeldung erwarten =??
-
...