在写一个小游戏,有些配置数据(例如某个怪物的大小,每一关怪物数量),想写死在代码里面,都放在一个头文件中。本人在config.h中定义如下:
static const int MON_SIZE = 10;
map<int, int> LEVEL_MON_NUM;
static void initConfig(){
LEVEL_MON_NUM[1] = 5;
LEVEL_MON_NUM[2] = 6;
LEVEL_MON_NUM[3] = 7;
}
多个文件包含config.h时会报错,貌似是map的问题。需要用到全局不变的map,需要怎么解决呢?求高手指点
static const int MON_SIZE = 10;
map<int, int> LEVEL_MON_NUM;
static void initConfig(){
LEVEL_MON_NUM[1] = 5;
LEVEL_MON_NUM[2] = 6;
LEVEL_MON_NUM[3] = 7;
}
多个文件包含config.h时会报错,貌似是map的问题。需要用到全局不变的map,需要怎么解决呢?求高手指点
解决方案:15分
在 .h 里声明(extern),另写一个 cpp 定义(并初始化)。
解决方案:15分
static全局变量只在当前文件有效
另外,假如要多次包含一个头文件,把头文件中用下面宏包起来,这样不会多次展开
#ifndef xxxxxxxxxxxxxxxxxx
#define xxxxxxxxxxxxxxxxxx
//头文件内容
#endif
另外,假如要多次包含一个头文件,把头文件中用下面宏包起来,这样不会多次展开
#ifndef xxxxxxxxxxxxxxxxxx
#define xxxxxxxxxxxxxxxxxx
//头文件内容
#endif