當前位置:首頁 » 電腦資訊 » c類模板為什麼放在一個文件

c類模板為什麼放在一個文件

發布時間: 2023-04-05 14:31:12

❶ C++類模板的聲明和定義為什麼要放在同一個文件

也不是只能放在.h裡面,但是推薦放在.h裡面。STL模板實現全部是放在.h裡面的。
------------------
編譯能通過。
1)參與編譯的只是.cpp文件,不會報錯的原因,是因為它能在.h裡面找到模板的聲明。
鏈接錯誤。
1)鏈接的時候,需要實例化模板,這時候就需要找模板的具體實現了。假設在main函數中調用了一個模板函數,這時候就需要去實例化該類型的模板。注意main函數裡面只包含了.h文件,也就是只有模板的聲明,沒有具體實備辯現。就會報錯。
2)而模板的實現.cpp裡面,雖然有模板的具體塌兆實現,但是沒有誰在該.cpp裡面使用一個模板函數,就不會生成一個具體化的實例。
ps:模板是在需要的時候,才會去生成一個具體化的實例的,比如,你只要一個int型的實例,模板就只會給你生成一個int型的實例,模板本身是不會被執行的(也就是模板本身不產生匯編指令),是模板生成的具體化實例才產生指令(這個實例是隱藏的,我們是看不到的)

解決方案:
1)將模板實現寫在.h裡面
2)如果你非要寫在.cpp裡面,那麼請在模板實現的.cpp文件裡面(或者.h裡面)顯式的實例化一個模板。如果是這樣的話,那模團滾租板就沒有太大的意義了,難道你去自己手動實例化所有的實例?

❷ C語言編寫的程序只能放在一個程序文件里嗎,如果不是,請說一下為什麼,謝謝了

不一定,通常來說,如果程序的代碼量比較少或者說是程序比較小,那麼我們會寫滾或在一個文件里。可磨輪如果是大程序的話,幾十個瞎備信文件都有可能。

熱點內容
為什麼孩子一上學動作慢 發布:2025-10-20 08:58:17 瀏覽:1009
腎虛為什麼眼睛會難受 發布:2025-10-20 08:27:38 瀏覽:699
人類的眼睛為什麼是透明的 發布:2025-10-20 08:02:01 瀏覽:766
男生為什麼不忍心看女生生氣 發布:2025-10-20 07:52:04 瀏覽:108
蘋果咬了一口為什麼會變顏色 發布:2025-10-20 07:44:38 瀏覽:469
兩周的孩子晚上睡覺總哭為什麼 發布:2025-10-20 07:39:46 瀏覽:871
為什麼注冊微信時協議點不了 發布:2025-10-20 07:36:14 瀏覽:827
為什麼小米更換不了鎖屏壁紙 發布:2025-10-20 07:36:13 瀏覽:628
蘋果手機為什麼不能用陌陌app 發布:2025-10-20 07:31:12 瀏覽:430
小米手機同等配置為什麼便宜 發布:2025-10-20 07:25:02 瀏覽:1045