我目前正在從一本名爲Alex Allain的書中學習C++ - 跳入C++,並陷入了第21章。它詳細介紹了C++構建過程,並且明白了這一點,除了2部分:C++構建過程(包括)
第一:
「頭文件不應包含任何功能定義,如果我們增加了一個函數定義的頭文件,然後包括該頭文件到多個源文件,該功能的定義會顯示在鏈接時鏈接兩次,這會混淆鏈接器。「
二:
「永遠不要包括.cpp文件包括直接.cpp文件只會導致問題,因爲編譯器會編譯每個函數定義在.cpp文件複製到每一個目標文件。 ,鏈接器將會看到同一個函數的多個定義,即使你非常小心你是如何做到這一點的,你也將失去單獨編譯帶來的節省時間的好處。「
有人可以解釋他們嗎?
我想你應該閱讀關於函數defenition和聲明之間的區別。它相當肯定它解決了你的問題。 –