c 模版的一些使用方法(二)

2021-06-05 20:04:16 字數 1099 閱讀 3296

c++模版的其他技巧:

1.編號生成器

考慮下面的場景,對於int、char、double、bool、float這5種型別,我們希望對他們進行型別編號1-5,並且確保對於每種型別,它的編號不會改變,即每次呼叫函式獲取該編號時,他都是唯一的且不變的。那麼使用通過定義乙個模版函式實現。

int g_id=0;//全域性id計數

3.插入繼承鏈

下圖是乙個繼承樹,從x開始,有乙個虛函式,virtual void show(),且每乙個子類都以下面的形式重寫這個函式:

void y::show()

//增加一些操作

z::show();

其中y表示x1、x2、a1、a2、b1、b2中的任意乙個,z表示y的父類。

先來個**看下:

class x

};class a2:public addclass2//從addclass2派生,並告訴addclass2從x1派生

};class b1:public addclass1//從addclass1派生,並告訴addclass1從x2派生

};class b2:public addclass2//從addclass2派生,並告訴addclass2從x2派生

};

輸出:

插入後的繼承樹:

顏色表示繼承路徑

c 模版的一些使用方法(三)

c 模版的應用是可以分類的。按照用途,可以分為 1 工程模版 2 演算法和資料結構的解耦 3 工作於編譯期的模版 4 xx的封裝 5 介面卡模式 首先解釋一下,這裡的劃分屬於較高層的應用劃分,但這些應用都是基於模版的一些共同特性的,比如帶預設引數 特化和偏特化等。分別解釋一下就是 1 工程模版 c ...

DateTime的一些使用方法

1 datetime 數字型 system.datetime currenttime new system.datetime 1.1 取當前年月日時分秒 currenttime system.datetime.now 1.2 取當前年 int 年 currenttime.year 1.3 取當前月 ...

define的一些使用方法

1.可以對一些常量 字串進行巨集定義,在預處理過程中進行替換,而不是在編譯過程中。define pi 3.1415926 2.也可以對資料型別進行巨集定義,這樣與 typedef 效果相同 typedef為 c語言的關鍵字,作用是為一種資料型別定義乙個新的名字。typedef unsigned ch...