類模板與函數模板的定義和使用類似,我們已經進行了介紹,如果您對函數模板也感興趣,請查看:C++函數模板。有時,有兩個或多個類,其功能是相同的,僅僅是數據類型不同,如下面語句聲明了一個類:
- class Compare_int
- {
- public :
- Compare(int a,int b)
- {
- x=a;
- y=b;
- }
- int max( )
- {
- return (x>y)?x:y;
- }
- int min( )
- {
- return (x<y)?x:y;
- }
- private :
- int x,y;
- };
其作用是對兩個整數作比較,可以通過調用成員函數max和min得到兩個整數中的大者和小者。如果想對兩個浮點數(float型)作比較,需要另外聲明一個類:
- class Compare_float
- {
- public :
- Compare(float a,float b)
- {
- x=a;y=b;
- }
- float max( )
- {
- return (x>y)?x:y;
- }
- float min( )
- {
- return (x<y)?x:y;
- }
- private :
- float x,y;
- }
顯然這基本上是重複性的工作,應該有辦法減少重複的工作。C++在發展的後期增加了模板(template )的功能,提供了解決這類問題的途徑。可以聲明一個通用的類模板,它可以有一個或多個虛擬的類型參數,如對以上兩個類可以綜合寫出以下的類模板:
複製純文本新窗口
※空白圖文模板
※「模板」學習筆記(1)
※HTML網頁模板
※精美空白日誌模板素材
※精美空白模板
TAG:模板 |