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