【编程训练中的问题】C++函数模板在.hpp中定义,当有多个文件包含该头文件时,编译出现重复定义

文章讲述了在C++中,因头文件包含函数定义和变量,导致在工程中多处包含时出现重复定义的问题。解决方法是将函数声明移至.h文件,定义放在.cpp文件中,并强调命名空间内不能定义变量。还提及了C++函数模板的类似问题及处理方式。
摘要由CSDN通过智能技术生成

情景:

.hpp文件在测试时一切正常,包含进工程中导致多个文件包含该头文件,出现命名空间中的函数重复定义的问题。即使存在#pragma once也没有用。


原因:

头文件不应该含有任何“具有链接性的实体”。不应该有函数体,和变量的定义。否则每次包含该头文件时,都相当于把代码复制粘贴了一遍,自然造成了重复定义。


 解决方法:

函数老老实实在.h文件中声明,在.cpp文件中定义。另外,还需要注意,命名空间中不能定义变量。

 参考链接:

命名空间namespace ,以及重复定义的问题解析_自己定义的namespace为什么会re_晴树SEU的博客-CSDN博客

(21 封私信 / 81 条消息) C++函数模板在.hpp中定义和实现,当有多个文件包含该头文件时编译出现重复定义的问题,该如何解决? - 知乎 (zhihu.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值