Hi,
Could someone please tell me why we would need to use forward declaration?? Cause I fixed of my errors using this and now im getting stupid errors just about everywere. I get the following errors for all the functions in the class InitialState.
Thanks
raven
ERROR:
InitialState.cpp:10: no `void InitialState::activate(Model)' member function
declared in class `InitialState'
InitialState.cpp: In member function `void InitialState::activate(Model)':
InitialState.cpp:11: `NullOperator' undeclared (first use this function)
InitialState.cpp:11: (Each undeclared identifier is reported only once for each
function it appears in.)
InitialState.cpp: At global scope:
InitialState.cpp:16: no `void InitialState::nonZeroDigitKeyPressed(Model, int)'
member function declared in class `InitialState'
**************************************
InitialState.h
#ifndef INITIALSTATE_H
#define INITIALSTATE_H
//class InitialState;
//#include "ICalcState.h"
class InitialState : public ICalcState{
public:
InitialState();
// const static InitialState *Singleton;
// private:
// InitialState getInstance();
// const static InitialState Instance;
};
#endif
**********************************
InitialState.cpp
//class InitialState;
#include "Model.h"
//#include "ICalcState.h"
#include "InitialState.h"
InitialState::InitialState(){
// Singleton = getInstance();
}
void InitialState::activate(Model model) {
model.set_currentOperation(NullOperator.Singleton);
model.set_pendingOperation(NullOperator.Singleton);
model.set_currentValue(0);
}
void InitialState::nonZeroDigitKeyPressed(Model model, int digit) {
model.set_currentValue(model.get_currentValue() * 10 + digit);
}
void InitialState::zeroDigitKeyPressed(Model model) {
model.set_currentValue(model.get_currentValue() * 10);
}
void InitialState:
lusKeyPressed(Model model) {
model.set_currentOperation(new AddOp(model.get_currentValue()));
model.set_state(LowPrecedenceOperatorCurrent.Singleton);
}
void InitialState::minusKeyPressed(Model model) {
model.set_currentOperation(new SubOp(model.get_currentValue()));
model.set_state(LowPrecedenceOperatorCurrent.Singleton);
}
void InitialState::timesKeyPressed(Model model) {
model.set_currentOperation(new MulOp(model.get_currentValue()));
model.set_state(HighPrecedenceOperatorCurrent.Singleton);
}
void InitialState::divideKeyPressed(Model model) {
model.set_currentOperation(new DivOp(model.get_currentValue()));
model.set_state(DivOperatorCurrent.Singleton);
}
void InitialState::equalsKeyPressed(Model model) {
model.set_state(AfterEqualsState.Singleton);
}
void InitialState::clearKeyPressed(Model model) {
model.set_state(InitialState.Singleton);
}