如果在一个头文件中定义了一个变量
A.h:
int i;
在A.cpp,B.cpp...文件中包含了这个头文件,编译时就会产生重复定义的错误。问题所在是因为int i;这句代码是定义了一个i变量,包含一次头文件就定义了一次i,包含多次肯定引起错误。如果改成extern int i;这句代码就变成了一个声明了。并不会定义i这个变量。不过在多个cpp文件里初始化一样会出现错误。只能在一个cpp文件中进行初始化。
时间: 2024-10-11 13:50:12
如果在一个头文件中定义了一个变量
A.h:
int i;
在A.cpp,B.cpp...文件中包含了这个头文件,编译时就会产生重复定义的错误。问题所在是因为int i;这句代码是定义了一个i变量,包含一次头文件就定义了一次i,包含多次肯定引起错误。如果改成extern int i;这句代码就变成了一个声明了。并不会定义i这个变量。不过在多个cpp文件里初始化一样会出现错误。只能在一个cpp文件中进行初始化。