c++头文件同名问题

haovujn 2011-07-29 11:38:38
在C++程序中 #include "1.h" 和#include "2.h" 两个头文件后,在程序中再调用fun函数时,就产生问题,编译通都不过。不包含这两个头文件的时候就没有问题。这两个头文件不可改,硬件的接口. 我改如何是好啊?
...全文
767 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
willabc 2011-08-01
  • 打赏
  • 举报
回复
来学习学习!
toadzw 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 qingkongxiaoyang 的回复:]

确定问题产生的原因,是因为两个头文件中均有fun()方法?
指定类名。
还是两个头文件中引用了相同的其它头文件?
加入
#endif
.define..
#endif
防止头文件重复引用 。
[/Quote]


OK
一叶之舟 2011-08-01
  • 打赏
  • 举报
回复
second C linkage of overloaded function 'StartTimer' not allowed
see declaration of 'StartTimer'

提示已经说的很清楚了,StartTimer函数被生载了,而C是不支持重载,发果是包含了头文件出现,看头文件中是不是定义了该函数,与其它地方的定义不一致。
风吹PP凉SS 2011-08-01
  • 打赏
  • 举报
回复
是不是重复包含了
tompaz 2011-08-01
  • 打赏
  • 举报
回复
混分 的路过
haovujn 2011-08-01
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 dizuo 的回复:]

// obj_1.h
C/C++ code
class Obj1
{
public:
static void do_stuff();
};


// obj_1.cpp
C/C++ code
#include "1.h" //设备1
void Obj1::do_stuff()
{
fun(); //调用设备1的函数
}


// obj_2.h
C/C++ ……
[/Quote]


我把.h 和.cpp封装成dll调用不知道可以不
boluomianbao 2011-07-29
  • 打赏
  • 举报
回复
哇 正在学习这个 LZ具体什么错误啊 我好标记个~
sandunfandeshijie 2011-07-29
  • 打赏
  • 举报
回复
2楼说的方法 可行
至善者善之敌 2011-07-29
  • 打赏
  • 举报
回复
没看清题目什么意思,是1.2里都有FUN所以错误?
帅得不敢出门 2011-07-29
  • 打赏
  • 举报
回复
加命名空间吧.
ryfdizuo 2011-07-29
  • 打赏
  • 举报
回复
不要同时引用两个h头文件。
pathuang68 2011-07-29
  • 打赏
  • 举报
回复
在C或者cpp文件的开始处,加上#pragma once试试
Michael_Xie 2011-07-29
  • 打赏
  • 举报
回复
什么问题都没有讲清楚,怎么解决啊?
c_losed 2011-07-29
  • 打赏
  • 举报
回复
看产生的问题 还有编译的错误进行调试
hai040 2011-07-29
  • 打赏
  • 举报
回复
#define fun funxx
#include "1.h"
#undef fun
烂方法

头文件改下没关系吧
复制一份到自己的目录里改
Jxiaoshen 2011-07-29
  • 打赏
  • 举报
回复
类名::fun()
欣客 2011-07-29
  • 打赏
  • 举报
回复
如果头文件不能改,只能该自己的程序了。

硬件A封装成类A包含1.h 封装fun函数
硬件B封装成类B包含2.h 封装fun函数


这个办法不错。。。
jernymy 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 qingkongxiaoyang 的回复:]
确定问题产生的原因,是因为两个头文件中均有fun()方法?
指定类名。
还是两个头文件中引用了相同的其它头文件?
加入
#endif
.define..
#endif
防止头文件重复引用 。
[/Quote]

支持这个
gzyyan249 2011-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jxiaoshen 的回复:]

类名::fun()
[/Quote]
+1
qingkongxiaoyang 2011-07-29
  • 打赏
  • 举报
回复
确定问题产生的原因,是因为两个头文件中均有fun()方法?
指定类名。
还是两个头文件中引用了相同的其它头文件?
加入
#endif
.define..
#endif
防止头文件重复引用 。
加载更多回复(9)

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧