Virtuell Methode Problem.
-
Hallo,
ich habe folgendes Problem, ich kriege bei dem Kompilieren zwei Fehler:
C2061 Bezeichner FSM( bei der state.h)
C2660 Bei der implementation FSM Methoden (bei m_state->import(*this))#ifndef FSM_H #define FSM_H #include "state.h" class FSM { public: FSM(); FSM(State* initFSM); void discard(); void import(); void capture(); void accept(); void cancel(); void modify(); void isInProcess(); void changeState(State* newState); private: State* m_state; }; #endif /* FSM_H */#include "stdafx.h" #include "fsm.h" FSM :: FSM() { } FSM :: FSM(State* initFSM) { m_state = initFSM; } void FSM :: import() { m_state->import( *this ); } void FSM :: accept() { m_state->accept( *this ); } void FSM :: capture() { m_state->capture( *this ); } void FSM :: discard() { m_state->discard( *this ); } void FSM :: cancel() { m_state->cancel( *this ); } void FSM :: modify() { m_state->modify( *this ); } // Noch zu implementieren!!! void FSM :: isInProcess() { } void FSM :: changeState( State* newState ) { m_state = newState; }#ifndef STATE_H #define STATE_H //#include "fsm.h" class State{ public: virtual void discard(FSM&);// allows changing FSM object state virtual void import(FSM&); virtual void capture(FSM&); virtual void accept(FSM&); virtual void modify(FSM&); virtual void cancel(FSM&); }; #endif /* STATE_H */Kann mir jemand helfen, Was mache ich falsch?
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x und C++11) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
du musst "State" mitteilen, dass es eine Klasse "FSM" gibt:
class FSM; class State {...}In diesem Fall reicht im header die forward-Deklaration, weil du nur Referenzen verwendest. In der cpp-Datei musst du dann den header inkludieren.
-
danke, das hat Problem gelöst.