我正在编写一个程序,但是我不知道为什么会出现错误(注意:我已经解决了这个问题,我只是想知道为什么会出现这个错误以及这意味着包含.h文件的含义)。基本上,我的程序结构如下:
我正在处理的当前文件称为Current.cc(它是Current.h的实现)。
Current.cc包含一个名为CalledByCurrent.h的头文件(它有一个关联的实现叫做CalledByCurrent.cc)。CalledByCurrent.h包含一个类定义。
CalledByCurrent.cc中定义了一个非类函数,名为thisFunction()。由于它实际上不是类的成员函数(只是一个小助手函数),因此在CalledByCurrent.h中没有声明thisFunction()。在Current.cc中,我需要使用这个函数,所以我只是在Current.cc的顶部重新定义了thisFunction()。然而,当我这样做时,我得到了一个错误,说这个函数被重复定义了。为什么会这样,myFunction()甚至没有在CalledByCurrent.h中声明?
因此,我只是从Current.cc中删除了这个函数,现在假设Current.cc可以从CalledByCurrent.cc中访问thisFunction()。然而,当我这样做时,我发现Current.cc不知道我在说什么函数。这是怎么回事?然后,我将thisFunction()函数定义复制到了我的CalledByCurrent.h文件的顶部,这解决了问题。你能帮我理解这种行为吗?特别是,为什么它会认为有一个重复,但却不知道如何使用原始函数?
附言:对于这篇文章的混乱,我感到抱歉。如果有什么需要澄清的,请告诉我。
我正在处理的当前文件称为Current.cc(它是Current.h的实现)。
Current.cc包含一个名为CalledByCurrent.h的头文件(它有一个关联的实现叫做CalledByCurrent.cc)。CalledByCurrent.h包含一个类定义。
CalledByCurrent.cc中定义了一个非类函数,名为thisFunction()。由于它实际上不是类的成员函数(只是一个小助手函数),因此在CalledByCurrent.h中没有声明thisFunction()。在Current.cc中,我需要使用这个函数,所以我只是在Current.cc的顶部重新定义了thisFunction()。然而,当我这样做时,我得到了一个错误,说这个函数被重复定义了。为什么会这样,myFunction()甚至没有在CalledByCurrent.h中声明?
因此,我只是从Current.cc中删除了这个函数,现在假设Current.cc可以从CalledByCurrent.cc中访问thisFunction()。然而,当我这样做时,我发现Current.cc不知道我在说什么函数。这是怎么回事?然后,我将thisFunction()函数定义复制到了我的CalledByCurrent.h文件的顶部,这解决了问题。你能帮我理解这种行为吗?特别是,为什么它会认为有一个重复,但却不知道如何使用原始函数?
附言:对于这篇文章的混乱,我感到抱歉。如果有什么需要澄清的,请告诉我。