作业帮 > 综合 > 作业

已经在其他文件中定义,fatal error LNK1169:找到一个或多个多重定义的符号

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 15:58:57
已经在其他文件中定义,fatal error LNK1169:找到一个或多个多重定义的符号
定义了一个头文件,包含一个 bool 变量,然后在另一个 类的头文件中包含了此头文件 ,如下所示:
A.h
#ifndef _A_HEADER_
#define _A_HEADER_
bool bGolbal = true;
#endif //\x09\x09_A_HEADER_
C.cpp
#include "a.h"
#include "b.h"
int main()
{
bGolbal = false;
return 0;
}
得到如上错误,请问如何解决,
A.h
#ifndef _A_HEADER_
#define _A_HEADER_
extern bool bGolbal;
#endif //\x09\x09_A_HEADER_
B.cpp
extern bool bool bGolbal;
void set()
{
bGolbal = true;
}
c.cpp
bool bGolbal;
void main()
{
bGolbal = FALSE;
class B b;
b.set(bGolbal);
if(b)
{
printf("1111\n");
}
else
{
printf("00000000000\n");
}
}
头文件不得包含变量定义和函数体,否则被包含一次,这些变量、函数就被重新定义,从而导致这个问题.把变量定义放到一个源文件中,然后在头文件中写成
extern bool bGolbal ;
再问: bool bGolbal ; 我想定义为全局变量 class B 中的某些函数会访问这个变量,并改变它 的 值, 您说的,我试了一下,因该是我没有理解清楚,能否详细说明一下,谢谢 !
再答: 我说的很清楚了,你怎么试的,遇到什么错误了
再问: 变量的值没有改变
再答: "你怎么试的"!我根本不知道你怎么改的,怎么知道你为什么变量值不变。列最新代码