我发生错误的原因是因为在主aaa.h文件中,包含了自己新建的bbb.h文件
但是在主aaa.cpp文件中是包含了aaa.h文件的,在编译的时候,bbb.h文件会有两个引用路径:aaa.cpp->aaa.h->bbb.h以及aaa.h->bbb.h(编译的时候会把所有文件都整合到一起,再进行编译(我是这么认为的),自己感觉只有一个引用路径,实际上这样引用有两个引用路径),就会造成重复引用,并且这种错误用pragma类似这种方法也无法解决的。
正确的处理方式是:在aaa.cpp直接引用bbb.h。
但是!!!我出现的问题说是重复引用,实际上重复定义更准确。因为我把bbb.h中声明的函数也直接在里面定义了(为了偷懒),结果两条路径的引用就会造成重复定义。要避免我这种情况更合理的是将函数定义单独在bbb.cpp中实现。
以此记录!!!!!!!
还有一种:重复定义全局变量,也会造成这种错误,还没有遇到也一并记录一下
解决方式:
1、不同文件声明同一变量时必须使用extern关键字
2、不能给变量赋初值