【发布时间】:2011-08-27 00:13:20
【问题描述】:
我目前正在编写一个程序,但无法弄清楚为什么会出现错误(注意:我已经修复了它,我很好奇为什么会出现错误以及这对包含 .h 文件意味着什么) .
基本上,我的程序结构如下:
我正在处理的当前文件,我将调用Current.cc(这是Current.h 的一个实现)。
Current.cc 包含一个名为 CalledByCurrent.h 的头文件(它有一个名为 CalledByCurrent.cc 的关联实现)。 CalledByCurrent.h 包含一个类定义。
CalledByCurrent.cc 中定义了一个名为 thisFunction() 的非类函数。 thisFunction() 没有在 CalledByCurrent.h 中声明,因为它实际上不是类的成员函数(只是一个小辅助函数)。在Current.cc中,我需要用到这个函数,所以我只是在Current.cc的顶部重新定义了thisFunction()。但是,当我这样做时,我收到一条错误消息,指出该功能已重复。当myFunction() 甚至没有在CalledByCurrent.h 中声明时,为什么会这样?
因此,我刚刚从Current.cc 中删除了该函数,现在假设Current.cc 可以从CalledByCurrent.cc 访问thisFunction()。但是,当我这样做时,我发现Current.cc 不知道我在说什么功能。有没有搞错?然后我将thisFunction() 的函数定义复制到我的CalledByCurrent.h 文件的顶部,这解决了问题。你能帮我理解这种行为吗?特别是为什么它会认为有复制,但它不知道如何使用原件?
p.s - 对于这篇文章的混乱程度,我深表歉意。如果有什么我可以澄清的,请告诉我。
【问题讨论】:
-
简化帖子的一个好主意是发布小样本文件,显示
Current.cc、CalledByCurrent.cc及其各自标题的内容。
标签: c++ function include header-files