編輯:只是忘了添加「state_manager::
」我的不好。標題中的私人類型定義?
我想創建一個簡單的狀態系統。爲了節省一些打字和稍後更容易改變,我在state_manager.hpp
中加入了一些typedef。問題是這些類型定義似乎不能在我的state_manager.cpp
中識別。 我收到如'element' does not name a type
和奇怪'states' was not declared in this scope
的錯誤。我真的很困惑。
state_manager.hpp:
#pragma once
#include <stack>
#include <memory>
class state;
class state_manager{
typedef std::unique_ptr<state> element;
typedef std::stack<element> container;
protected:
container states;
public:
void push(const element &to_push);
void pop();
void change(const element &change_to);
};
state_manager.cpp:
#include "state_manager.hpp"
#include "state.hpp"
void push(const element &to_push){
states.push(to_push);
}
void pop(){
states.pop();
}
void change(const element &change_to){
states.pop();
push(change_to);
}
哦,哇!我很慚愧!如果我每次掛機都會有一美元,因爲我忘記了前綴。 –