009
12.12.2004, 13:21 Uhr
Spacelord
Hoffnungsloser Fall
|
Wenn die Anzahl der Autos erstmal bekannt ist halte ich einen vector für unnötig. Als kleines Beispiel dass nur die angesprochenen Probleme umsetzt kannst du dir ja das mal anschauen. Die initialisierung der Autoobjekte in main setzt dabei voraus das mindestens 2 Autos angelegt werden sollen.Ist halt besser zu verstehen wenn ich den Objekten konkrete Namen gebe anstatt in ner Schleife "Standardobjekte" zu erzeugen. Ist nicht perfekt aber sollte dir weiterhelfen.
C++: |
#include <iostream> #include <string> using namespace std;
class tankstelle { private: int benzinvorrat; public: tankstelle(int); int getBenzinvorrat()const{return benzinvorrat;} int gibt_aus(int); };
tankstelle::tankstelle(int startmenge) { benzinvorrat=startmenge; }
int tankstelle::gibt_aus(int liter) { if(liter<=benzinvorrat) { benzinvorrat -= liter; return liter; } else { int temp=benzinvorrat; benzinvorrat=0; return temp; } }
class Auto { private: string name; int tankinhalt;
public: Auto(); Auto(string,int );
string getName()const{return name;} int getTankinhalt()const{return tankinhalt;} void tanken(tankstelle&,int); };
Auto::Auto(string n,int t) { name=n; tankinhalt= t; }
void Auto::tanken(tankstelle& tanke,int lit) { tankinhalt += tanke.gibt_aus(lit); }
int main() { int i; cout<<"Wieviele Autos? :"; cin>>i; tankstelle BP(67); Auto** dieAutos = new Auto*[i];
//Achtung hier setze ich jetzt für Demozwecke einfach voraus dass // i mindestens 2 ist!! dieAutos[0]=new Auto("Audi A3",5); dieAutos[1]=new Auto("Porsche 911",20);
cout<<dieAutos[0]->getName()<<'\t'<<dieAutos[0]->getTankinhalt()<<endl; cout<<dieAutos[1]->getName()<<'\t'<<dieAutos[1]->getTankinhalt()<<endl; cout<<"Benzinvorrat der Tankstelle: "<<BP.getBenzinvorrat()<<endl;
cout<<"\n\nDer Audi will 30 Liter tanken.\n"; dieAutos[0]->tanken(BP,30); cout<<dieAutos[0]->getName()<<'\t'<<dieAutos[0]->getTankinhalt()<<endl; cout<<"Benzinvorrat der Tankstelle: "<<BP.getBenzinvorrat()<<endl;
cout<<"\n\nDer Porsche will 50 Liter tanken.\n"; dieAutos[1]->tanken(BP,50); cout<<dieAutos[1]->getName()<<'\t'<<dieAutos[1]->getTankinhalt()<<endl; cout<<"Benzinvorrat der Tankstelle: "<<BP.getBenzinvorrat()<<endl;
return 0; }
|
MfG Spacelord -- .....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes. |