问题是,当你尝试调用SetState()
内部时LockedState::Coin()
,类UnlockedState
是一个不完整的类型:它已被声明但未定义.为了解决这个问题,你需要将of的定义移到以下Coin()
之后UnlockedState
:
class LockedState : public TurnstileState { public: virtual void Coin(TurnstileFSM* t); ... }; class UnlockedState : public TurnstileState { ... }; void LockedState::Coin(TurnstileFSM* t) { ... }