本文要解決的問題很好描述,但要想取個對應的標題還真不容易。
任務描述:假設我有乙個邏輯執行緒,這個執行緒專門用來處理 各種類成員函式的呼叫。
要求:類型別不限,類成員函式引數型別可以任意。
首先為這些成員函式定義乙個基類
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 ...