首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

多文件中全局变量的有关问题

2013-04-09 
多文件中全局变量的问题a.h文件中:#include iostreamusing namespace stddouble sale 0......//一些

多文件中全局变量的问题


a.h文件中:
#include <iostream>
using namespace std;
double sale = 0;
...
...
//一些定义
a.cpp中:
#include <a.h>
...
...
//一些实现

main.cpp中:
#include "a.h"
int main()
{
//一些调用
}



这段代码当我编译的时候,会提示sale重复定义。为什么会重复定义? 在main.cpp中  不是用a.h中的文件内同来替换#include 么? 怎么会重复定义呢?
[解决办法]
头文件中的数据
用#ifndef .
#define
 ..
#endif
来做就可以防止重复定义的问题
[解决办法]
全局变量的定义放在头文件会导致重定义,可把定义放在源文件,声明放在头文件。
[解决办法]
头文件会被展开到引用它的.cpp文件中,
a.cpp中展开一次
main.cpp中又展开一次
就定义了2次了
[解决办法]
二楼正解!据说Windows也是这样做的。

热点排行