problem mit konstruktor
-
hi leute!
ich hab ein problem mit dem konstruktor...find den fehler einfach net;-(
vielleicht kann jemand helfen!??cu
EnergyRobot.h: ----------------- #include "VirtualRobot.h" #include "Engine.h" const maxEnergyLevel = 100; // entspricht 100% bei vollstaendiger Aufladung class EnergyRobot: public VirtualRobot { public: EnergyRobot(int x_start, int y_start,unsigned energyLevel); // Methode d. Eltern ueberschreiben bool bewegen (int deltaX, int deltaY); unsigned getEnergyLevel(); bool aufladen(); void print(); private: Engine engine; }; Engine.h: -------- class Engine { public: //EnergyRobot(int x_start, int y_start, unsigned energyLevel) unsigned getEnergyLevel(); Engine(unsigned energyLevel); bool aufladen(); bool entladen(int deltaX, int deltaY/*,unsigned energyLevel*/); void print(); private: unsigned energyLevel; }; VirtualRobot.h: -------------- class VirtualRobot { protected : bool eingeschaltet; int x; // x position des Roboters (in meter) int y; // y position des Roboters (in meter) public: VirtualRobot ( int x_start, int y_start); bool bewegen ( int deltaX // wieviele meter in x richtung , int deltaY ); // wieviele Meter in y richtung bool einschalten (); void ausschalten (); int getX (); // liefert aktuelle x position zurueck int getY (); // liefert aktuelle y position zurueck void print(); }; Engine.cpp: ------------ #include <math.h> #include "EnergyRobot.h" Engine::Engine(unsigned energyLevel) { Engine::energyLevel = energyLevel; } unsigned Engine::getEnergyLevel() { return energyLevel; } bool Engine::aufladen() { { energyLevel = maxEnergyLevel; return true; } return false; } bool Engine::entladen(int deltaX, int deltaY) { if(energyLevel >= (abs(deltaX)+abs(deltaY))) { energyLevel -= (abs(deltaX)+ abs(deltaY)); //VirtualRobot::bewegen(deltaX, deltaY); return true; } return false; } VirtualRobot.cpp: ----------------- #include <iostream.h> #include <string.h> #include "VirtualRobot.h" VirtualRobot::VirtualRobot(int x_start, int y_start ) { x = x_start; y = y_start; } bool VirtualRobot::einschalten () { eingeschaltet = true; return true; } void VirtualRobot::ausschalten () { eingeschaltet = false; } bool VirtualRobot::bewegen (int deltaX, int deltaY) { if (eingeschaltet) { x += deltaX; y += deltaY; return true; } else // ein ausgeschalteter VirtualRobot kann sich nicht bewegen! return false; } int VirtualRobot::getX () { return x; } int VirtualRobot::getY () { return y; } void VirtualRobot::print() { cout << "position = [ " << x <<" ," << y << " ]" << endl; } EnergyRobot.cpp: ---------------- #include <iostream.h> #include <math.h> #include "EnergyRobot.h" EnergyRobot::EnergyRobot(int x_start, int y_start, unsigned energyLevel) :VirtualRobot(x_start, y_start) { //EnergyRobot::energyLevel = energyLevel; //entladen (0) oder aufgeladen (100) } unsigned EnergyRobot::getEnergyLevel() { return engine.getEnergyLevel(); } bool EnergyRobot::bewegen(int deltaX, int deltaY) { if(engine.entladen(deltaX, deltaY) == true) { VirtualRobot::bewegen(deltaX, deltaY); return true; } return false; } bool EnergyRobot::aufladen() { return engine.aufladen(); } void EnergyRobot::print() // Ausgabe auf Konsole { VirtualRobot::print(); unsigned energyLevel =0; cout<<"EnergyLevel =[ "<<energyLevel<<" ]"<<endl<<endl; } --------------------Konfiguration: robot - Win32 Debug-------------------- Kompilierung läuft... EnergyRobot.cpp Energyrobot.cpp(20) : error C2512: 'Engine' : Kein geeigneter Standardkonstruktor verfuegbar