我遇到了这个“多个定义”错误,不知道应该由谁来解决。
头文件
#ifndef HEADER_H
#definde HEADER_H
enum Gamestate{
MENU,
PLAY,
PAUSE,
GAMEOVER
};
Gamestate GAMESTATE = MENU;
#endif
main.cpp
#include "header.h"
switch(GAMESTATE){...}
如果我把Gamestate GAMESTATE = MENU;在header.cpp中main.cpp不知道该变量。如果以这种方式进行编译,则会得到多个Def。错误。
最佳答案
您应该在标头中声明全局变量extern
:
#ifndef HEADER_H
#definde HEADER_H
enum Gamestate{
MENU,
PLAY,
PAUSE,
GAMEOVER
};
extern Gamestate GAMESTATE;
#endif
并在任何
.cpp
文件中提供定义: Gamestate GAMESTATE = MENU;