C 模板的魅力和魔力

2021-06-14 18:04:26 字數 632 閱讀 6325

本文要解決的問題很好描述,但要想取個對應的標題還真不容易。

任務描述:假設我有乙個邏輯執行緒,這個執行緒專門用來處理 各種類成員函式的呼叫。

要求:類型別不限,類成員函式引數型別可以任意。

首先為這些成員函式定義乙個基類

class task

public:

virtual void run() = 0;

其次,抽象出各類的成員函式引數型別,下面以乙個引數為例

template

class task1 : public task

private:

t* obj;  method method;  a arg;

public:

task1(t* t, method m, const a &a)

protected:

virtual void run()

為了方便執行緒操作,再抽象出乙個專用的函式

template

task* newtask(t* t,method m,a &a)

return new task1(t, m, a);

下面做乙個簡單的測試(不是執行緒)

class jtest

void test()

};

領會 C 複製建構函式 的魅力

語法形式 類名 類名 const 類名 引用名 複製建構函式的特點 複製建構函式名與類名相同,並且也沒有返回值型別。複製建構函式可寫在類中,也可以寫在類外。複製建構函式要求有乙個類型別的引用引數。如果沒有顯式定義複製建構函式,系統自動生成乙個預設形式的複製建構函式。複製建構函式的呼叫 宣告語句中用類...

C 模板類和類模板

用相同的類模板可以組建任何型別的物件集合。在傳統c 中,可能有乙個浮點數類或者乙個整數類,如果使用類模板,可以定義乙個對兩者都適用的類number。類模板說明 類模板說明的一般形式是 template 型別形參表 class 類名 template 型別形參表 返回型別 類名 型別名錶 成員函式1 ...

C 類模板和模板類

類模板的意義和函式模板的意義是一樣的。template 宣告乙個模板,虛擬型別名為t。注意 這裡沒有分號。class compare 類模板名為compare t max t min 不能這樣定義類模板中的成員函式而 應當寫成類模板的形式 template tcompare max compare ...