裡面提到了這樣乙個概念:類模板的建構函式
我沒有看懂
於是我蒐集了一些** 放在下面
1. 模板類建構函式放在外面
#include "stdafx.h"
#include using namespace std;
#include template //模板類宣告開始
class abc
//建構函式
t get()
private:
t m_abc; //資料是私有的
}; //模板類宣告結束
void main() //main函式
這裡就是先宣告了乙個模板類叫做t 但是你也不知道這個t以後會是什麼
然後又宣告了乙個類叫做abc
那麼最後在main函式中就宣告了乙個變數叫做 a
a的型別是abc 但是同時又指定了型別是abc中的int 同時初始化為123
最後列印abc類中get函式的返回值 (123)
2. 模板類建構函式放在裡面
#include "stdafx.h"
#include using namespace std;
template class abc
;template abc::abc(t ab):m_abc(0)
template t abc::get()
void main()
觀察這兩個,我們可以發現不同之處在於,如果要在類外定義構造(成員)函式,那麼一般要遵循這樣的方法:
對於建構函式,需要遵循組合類建構函式定義(注意不是宣告)的一般形式:
類名::類名(形參表):內嵌物件1(形參表),內嵌物件2(形參表),...
比如這裡的
abc::abc(t ab):m_abc(0)
abc就是類名 只不過是加入了可能的模板類t
中間的是這個建構函式的形參表 型別是t 名稱是ab
最後是內前物件m_abc 初始化為0 (初始化為任何乙個數字都是可以的,應該是)
對於成員函式就只需要遵循一般的規矩即可
返回值 類 函式名稱(變數表)
所以
t abc::get()
之所以會出現這種不同 就是因為建構函式不允許有返回型別
又嘗試了一下 這樣也是可以的
abc::abc(t ab)//建構函式
abc::get() //成員函式
這樣看他倆就是一樣的了!
C 學習筆記( )
一 語法 迴圈 foreach 型別識別符號 in 表示式 code 用法 例子int temp foreach int num in temp 每次從temp取乙個元素賦給num直至取完 console.writeline n num 每行顯示乙個元素 執行結果 c 中唯讀 只寫控制 class ...
C 學習筆記
1.函式特徵 有函式頭和函式體 接受乙個引數 返回乙個值 需要乙個原型。2.c 命名規則 在名稱中只能使用字母字元 數字和下劃線 名稱的第乙個字元不能是數字 區分大寫字母和小寫字母 不能將c 關鍵字用作名稱 以兩個下劃線或下劃線和大寫字母打頭的名稱被保留給實現 編譯器及其使用的資源 使用,以乙個下劃...
c 學習筆記
屬性 屬性開頭字母大寫 屬性可以判斷輸入的非法值 屬性本身不儲存值 依靠字段 索引器 using system using system.collections.generic using system.linq using system.text namespace b try catch exc...