【发布时间】:2015-04-02 13:15:26
【问题描述】:
我想要一个可以随时随地轻松访问的全局变量(对象)。问题是我的源代码有多个 *.hpp 和 *.cpp 文件共享同一个变量!我在这里搜索并发现了类似的问题,但不知何故他们并没有解决我的问题。
- 使用关键字extern存在未定义的引用错误
- 没有关键字extern有多个定义错误
- 有关键字extern并在所有 *.cpp文件中重新声明 *.cpp文件没有关键字extern有多个定义错误
- 使用关键字extern并在只有一个 *.cpp文件中重新声明没有关键字extern,变量只能正常工作在那个 *.cpp 文件中
GameStateManager.hpp
/// GLOBAL VARIABLES
extern sf::RenderWindow window;
extern sf::Event event;
/// GAME STATES
#include "LogoState.hpp"
class GameStateManager
{
...blah blah blah...
};
GameStateManager.cpp
GameStateManager::GameStateManager()
{
window.create(sf::VideoMode(WIDTH, HEIGHT), TITLE, FLAGS);
window.setFramerateLimit(FPS);
gamestatescontainer.emplace_back(new LogoState);
}
LogoState.cpp
ListOfGameStates LogoState::run()
{
while (window.isOpen())
{
window.waitEvent(event);
if (event.type == sf::Event::Closed) window.close();
}
return ListOfGameStates::STATE_EXIT;
}
请帮帮我!
【问题讨论】:
标签: c++ global-variables extern