C 學習筆記

2021-07-01 23:33:52 字數 1410 閱讀 6739

裡面提到了這樣乙個概念:類模板的建構函式 

我沒有看懂

於是我蒐集了一些** 放在下面

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...