C++变量、函数在多文件中重复定义的问题

本文探讨了在C++项目中如何避免头文件内的变量和函数被重复定义的问题,并提供了多种解决方案。

在工程中包含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文件里。如果一定要定义在头文件里,可采取上述方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值