Редактировать: Просто забыли добавить «state_manager::
« Плохо.Частные Typedefs в заголовках?
Я пытаюсь создать простую государственную систему. Чтобы сохранить некоторую типизацию и сделать что-то легче изменить позже, я добавил некоторые typedefs в свой state_manager.hpp
. Проблема в том, что эти typedefs, похоже, не распознаются в моем 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);
}
О, ничего себе! Мне стыдно! Если бы у меня был доллар за каждый раз, когда меня повесили, потому что я забыл приставки. –