C 模板類的宣告 定義和使用

2021-07-25 06:31:58 字數 647 閱讀 6302

說明:

1. 將c++模板類的宣告和定義都放在乙個檔案,如.h或.cpp檔案中,使用的時候加入#include "模板類檔名.h(或.cpp)「即可。

2. 將c++模板類的宣告和定義分別放在.h和.cpp檔案中且在.cpp檔案中包含 #include ".h"。不過在使用時,會因為不同的開發環境而有所不同:

a. 在整合開發環境code::blocks下

在呼叫程式中只加入 #include "模板類.cpp" 可以編譯、執行通過,或者同時加入 #include "模板類.h" 和 "模板類.cpp" 也可以編譯、執行通過;

但只加入 #include "模板類.h" 是不能夠執行通過,會出現 undefined  reference to 錯誤

b. 在linux gcc 環境下:

在呼叫程式中只能加入 #include "模板類.cpp" 才能編譯、執行通過

否則 如果同時加入 #include "模板類.h" 和 "模板類.cpp" 則出現 class 重複定義的錯誤

總結: 為什麼需要在呼叫程式中加入  #include "模板類.cpp" 那是因為只有將模板類.cpp檔案同呼叫程式.cpp檔案放在一起編譯、執行才能真正確定類的真正型別,才能執行通過,不出現link之類(undefined reference to)的錯誤。

c 類模板中靜態成員變數的宣告定義

我們知道,c 中,類的靜態成員是要在.cpp檔案中定義的,如果在.h中定義,會出現重複定義。但是在寫類模板時,一般所有的 都是放在.h檔案中的,如果要做分離是一件很麻煩的事。那如果出現了靜態成員怎麼辦?如 ca.h template class ca 對於這個m vec怎麼辦呢?難道要我們在每個使用...

C 變數宣告定義

1.extern 宣告變數,在乙個檔案裡宣告以後,表示該變數要去其它檔案找變數,告訴編譯器 你現在編譯的檔案中,有乙個識別符號雖然沒有在本檔案或本檔案當前位置中定義,但是它是在別的檔案中或本檔案其它位置定義的全域性變數,你要放行!宣告變數 extern type variable 有extern,無...

C 函式的宣告定義

include 宣告 extern char mystrstrpoint char dest,char src extern char mystrstrarr char dest,char src extern char mystrcat char dest,char src extern void...