Klassen
-
#include <iostream.h> #include <conio.h> class Fahrzeug { private: char Fahrzeugmarke[20]; int Tankinhalt; int Verbrauch; float Reichweite[3]; protected: void setReichweite(void); public: char* getFahrzeugmarke(void); void setFahrzeugmarke(char[]); int getTankinhalt(void); void setTankinhalt(int); int getVerbrauch(void); void setVerbrauch(int); float* getReichweite(void); Fahrzeug(char[], int, int); Fahrzeug(); ~Fahrzeug(); }; char* Fahrzeug::getFahrzeugmarke(void) { return Fahrzeugmarke; } void Fahrzeug::setFahrzeugmarke(char F[]) { int i=0; while(F[i]!='\0') { Fahrzeugmarke[i]=F[i]; i++; } Fahrzeugmarke[strlen(F)]='\0'; } int Fahrzeug::getTankinhalt(void) { return Tankinhalt; } void Fahrzeug::setTankinhalt(int T) { Tankinhalt=T; } int Fahrzeug::getVerbrauch(void) { return Verbrauch; } void Fahrzeug::setVerbrauch(int V) { Verbrauch=V; } float* Fahrzeug::getReichweite(void) { return Reichweite; } void Fahrzeug::setReichweite(void) { Reichweite[0]=Tankinhalt/Verbrauch*100; Reichweite[1]=Tankinhalt/(Verbrauch+2)*100; Reichweite[2]=Tankinhalt/(Verbrauch-2)*100; } Fahrzeug::Fahrzeug(char F[], int T, int V) { setFahrzeugmarke(F); setTankinhalt(T); setVerbrauch(V); setReichweite(); } Fahrzeug::Fahrzeug() { } Fahrzeug::~Fahrzeug() { } class PKW : public Fahrzeug { private: int Vmax; int Sitzanzahl; public: PKW(int, int, char[], int, int); ~PKW(); int getVmax(void); void setVmax(int); int getSitzanzahl(void); void setSitzanzahl(int); }; PKW::PKW(int H, int S, char F[], int T, int V) : Fahrzeug(F, T, V), Vmax(H), Sitzanzahl(S) { } PKW::~PKW() { } int PKW::getVmax(void) { return Vmax; } void PKW::setVmax(int H) { Vmax=H; } int PKW::getSitzanzahl(void) { return Sitzanzahl; } void PKW::setSitzanzahl(int S) { Sitzanzahl=S; } class LKW : public Fahrzeug { private: int Achsenanzahl; int Zuladung; public: LKW(int, int, char[], int, int); ~LKW(); int getAchsenanzahl(void); void setAchsenanzahl(int); int getZuladung(void); void setZuladung(int); }; LKW::LKW(int A, int Z, char F[], int T, int V) : Fahrzeug(F, T, V), Achsenanzahl(A), Zuladung(Z) { } LKW::~LKW() { } int LKW::getAchsenanzahl(void) { return Achsenanzahl; } void LKW::setAchsenanzahl(int A) { Achsenanzahl=A; } int LKW::getZuladung(void) { return Zuladung; } void LKW::setZuladung(int Z) { Zuladung=Z; } class Fuhrpark { private: Fahrzeug Test[50]; int i; public: Fahrzeug* getTest(void); void setTest(Fahrzeug); int getIndex(void); Fuhrpark(); ~Fuhrpark(); }; Fahrzeug* Fuhrpark::getTest(void) { return Test; } void Fuhrpark::setTest(Fahrzeug D) { Test[i++]=D; cout<<i<<endl; } int Fuhrpark::getIndex(void) { return i; } Fuhrpark::Fuhrpark() { i=0; } Fuhrpark::~Fuhrpark() { } int main() { PKW F2(330, 2, "Porsche", 50, 10); LKW F3(5, 40, "MAN", 100, 15); Fuhrpark F4; F4.setTest(F2); F4.setTest(F3); getch(); return 0; }Tach Leute
ich komme schon wieder nicht weiter. Ich will jetzt die Attribute von der Klasse Fahrzeuge mit dem Objekt F4 ausgeben. Wie mache ich das?
-
mit deinen Get Funktionen!
-
ich hab es so probiert:
cout<<F4.getTankinhalt();aber so geht es ja nicht
-
wie geht nicht?
-
bekomme eine Fehlermeldung
'class Fuhrpark' has no member named 'getTankinhalt'
-
Scherzkeks... seit wann hat ein Fuhrpark einen Tankinhalt (weder im realen Leben noch bei deiner Vererbungshierachie.. denn der Fuhrpark ist kein Fahrzeug)?
Würde mal den Tankinhalt eines Fahrzeugs abfragen...
-
ja, hat Fuhrpark ja auch nicht....
[Edit] zu spaet.....
-
ja schon klar...aber ich muss es irgendwie mit dem Objekt F4 der Klasse Fuhrpark abfragen...
-
naja ist nicht schick aber so in der art?
cout<<F4.getTest()[0].getTankinhalt(); ^--- dein index
-
bla1 schrieb:
ja schon klar...aber ich muss es irgendwie mit dem Objekt F4 der Klasse Fuhrpark abfragen...
na dann musst eine funktion schrieben, die ein objekt einer Fahrzeug klasse aufnimmt, und darüber die funktion aufrufen!
Aber wieso MUSS das über Fuhrpark passieren?Ist doch verwirrend!
-
shapeless schrieb:
naja ist nicht schick aber so in der art?
cout<<F4.getTest()[0].getTankinhalt(); ^--- dein indexja so klappt es...vilen dank shapeless
