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
    

Anmelden zum Antworten