我目前正在編寫一個程序,但無法弄清楚爲什麼我得到一個錯誤(注意:我已經修復了它,我很好奇爲什麼錯誤在那裏,這意味着包括.h文件)。C++包含一個「.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和它的頭文件的內容。 – VinGarcia 2017-12-19 19:31:04