[gelöst]Konvertierungsproblem



  • hallo zusammen,

    ich habe folgendes programmiert:
    die Funktion

    IGameState* CGameStateFactory::Create(CGameStateFactory::eGameState eGS,   
       GameManager* pGameManager)
    {
    	switch(eGS)
    	{
    		case GS_GAME:
    			return new CGSGame(pGameManager);
    	}
    
    	return 0;
    }
    

    in CGSGame.h

    #ifndef GSGAME_H
    #define GSGAME_H
    //-----------------------------------------------------------------
    #include "IGameState.h"
    //-----------------------------------------------------------------
    class CGSGame : IGameState
    {
    public:
    	CGSGame(CGameManager* pGameManager);
    ...
    };
    #endif
    

    und in CGSGame.cpp

    #include "GSGame.h"
    //------------------------------------------------------------------
    CGSGame::CGSGame(CGameManager* pGameManager)
     : IGameState(pGameManager)
    {
    }
    //------------------------------------------------------------------
    

    ich bekomme aber immer diesen Fehler geliefert:

    c:\dokumente und einstellungen\thomas\eigene dateien\c++\matt´s tutorial\teil 
    2\teil 2\game\gamestatefactory.cpp(10) : error C2243: 'Typumwandlung': 
    Konvertierung von 'CGSGame *' zu 'IGameState *' ist bereits vorhanden, aber es 
    kann nicht darauf zugegriffen werden.
    

    den Code habe ich aus einem Tutorial abgeschrieben; kann ihn auch nachvollziehen, aber finde beim besten Willen den Fehler nicht.
    Vielleicht seid ihr erfolgreicher... 😉 !!??



  • Ich bin leider aus C++ schon zu lang draußen um solche Feinheiten ohne Testen noch zu wissen, aber vielleicht hilft es dir ja doch weiter.
    Versuche mal die Ableitung public zu machen:

    class CGSGame : IGameState
    

    ->

    class CGSGame : public IGameState
    


  • ja das wars, danke sehr

    ich dachte aber immer, das sei standardmäßig immer so...

    naja jetzt läufts aber gruß sammy


Anmelden zum Antworten