在工程中包含main.cpp,head.h,head.cpp三个文件。
变量
如果在head.h中定义 int a=3; 编译会出现a重复定义的错误,解决方法目前知道三种:
(1)const int a = 3;
(2)extern int a; 再在head.cpp中,int a = 3;
(3)删除head.cpp
函数
如果在head.h中定义 void fun() {}, 编译会出现fun重复定义的错误,解决方法目前知道四种:
(1)inline void fun() {}
(2)static void fun() {}
(3)extern void fun(); 再在head.cpp中, void fun() {};
(4)删除head.cpp
小结
头文件中只适合声明东西,然后cpp文件include头文件就是可以理解为多了一份该变量、函数的定义,变量、函数最好声明在头文件里面(加上extern),定义在cpp文件里。如果一定要定义在头文件里,可采取上述方法。
本文探讨了在C++项目中如何避免头文件内的变量和函数被重复定义的问题,并提供了多种解决方案。

980

被折叠的 条评论
为什么被折叠?



