糾正 模板類的定義和實現是放在一起的!

2021-05-17 09:35:17 字數 350 閱讀 7434

模板類的定義和實現是放在一起的!

在vc6中寫了乙個模板類,符合良好的書寫方式,標頭檔案和實現檔案分開的。

記得以前就是這麼寫的啊?

問題原因大概就是標頭檔案中的函式沒有找到實現部分。template語法?似乎沒問題啊。

後來網上研究一番 終於證實:原來定義和實現是要放在一起的,即在h檔案中。

原因嘛——類模板和函式模板不是真正的定義,真正的定義是在模板實體化的時候由編譯器完成的。

所以類模板的.h檔案和普通類的.h檔案在編譯器處理的時候是有區別的。

還有乙個說法,能否分開來寫,還和編譯器有關。ms有的編譯器是支援分開來寫的,但大多數不行。

要對自己的知識時常檢閱和糾正。

函式模板和類模板成員函式的定義通常放在標頭檔案中

今天寫程式時,將函式模板的宣告和定義分開放在標頭檔案和.cpp檔案中,發生了連線錯誤。上網檢視資料和檢視 c primer 5 p582發現,函式模板和類模板成員函式的定義通常放在標頭檔案中,除非使用export關鍵字實現分離。下面是 c primer 5 的原文 p582 關鍵概念 模板和標頭檔案...

函式模板和類模板成員函式的定義通常放在標頭檔案中

今天寫程式時,將函式模板的宣告和定義分開放在標頭檔案和.cpp檔案中,發生了連線錯誤。上網檢視資料和檢視 c primer 5 p582發現,函式模板和類模板成員函式的定義通常放在標頭檔案中,除非使用export關鍵字實現分離。下面是 c primer 5 的原文 p582 關鍵概念 模板和標頭檔案...

c 模板類 模板函式的宣告與定義應該放在標頭檔案裡

c 模板類 模板函式的宣告與定義應該放在標頭檔案裡,不要分開來寫類中函式的宣告與定義 比如在.h檔案裡宣告某個成員函式,在.cpp檔案裡定義該成員函式 這樣會導致連線錯誤。所應該將模板類 模板函式的定義與宣告寫在乙個.h檔案裡。比如在類的標頭檔案宣告了乙個函式 templatevoid fun t ...