C 模板的若干問題

2021-10-06 08:27:33 字數 1080 閱讀 5392

1.為什麼要使用模板?

對於特點相似的類,比如有相同的方法相似的成員,使用模板可以使得這些類得到進一步的抽象。也就是寫乙個超級形態的類。這樣至少有乙個淺顯的好處,只用寫一次。但實際上,可能更方便維護,也具有更一直的特性。對於函式,作用也類似,也就是形成乙個函式簇,這個函式簇的所做的動作是高度相似的。使用模板函式的益處也相似。

2.模板類怎麼寫?

模板類的申明如下

template class myclass1 

template class myclass2

實際使用模板類時,需要先指定t的實際型別

myclass1myclass;

//c++1.0中,連續兩個》會被認為是右移

//c++2.0中,連續》編譯器會判斷是右移還是兩個模板符合

3 模板函式怎麼寫?

template int foo(t v)

template

模板函式的呼叫不用指定t的實際型別,編譯器會在呼叫時自動推導

4 模板引數中typename和class有什麼區別?

typename 說明t是一種型別,這種型別可以是基本型別也可以是類。

class 說明t只能是類。

5 可變引數模板是什麼?

c++98/03的版本中,模板中的模板引數(也就是上面的t、u之流)是固定的,也就是1個2個還是3個,反正寫的時候就必須寫死。但是c++2.0(也就是c++2011/14/17/20)允許不寫死,也就是你在宣告的時候自己也不知道要寫幾個而是直接宣告乙個引數包。

6 採用遞迴方式的可變引數模板函式怎麼寫?

可變引數模板函式有兩種實現方式,一種是採用遞迴方式,一種是採用初始化列表方式

//2. 定義邊界處理函式,即遞迴呼叫結束時如何處理

void print()

template //注意模板引數必須在緊鄰函式前進行申明

void print(head arg0)

template// 3.宣告邊界型別,特化來終止遞迴解包

class mytuple

ceph若干問題

ceph health可以檢視ceph集群健康狀況 ceph df 可以檢視儲存的總使用率與各pool的使用率 ceph osd df 可以檢視各osd的使用率 ceph s 或 ceph status 可以檢視集群整體狀態 首先,我們要知道ceph的osd的位址 ceph osd tree可以檢視...

Ext grid 若干問題

1.grid.getselectionmodel getcount 獲得當前選中的行數 2.grid.getstore gettotalcount 獲得記錄總數 3.grid.getstore getcount 獲得當前分頁的記錄總數 4.5.獲得當前滑鼠單擊的單元格的value 6.new gri...

c 中const使用的若干問題

const修飾指標的情況 小竅門 看const位於 的 如果const位於 的左側,則const是修飾指標所指向的變數。如果const位於 的右側,則const是修飾指標本身。int b 500 const int a b 指標所指向的內容為常量,不允許更改內容 intconst a b 同上 in...