欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
函數模板 類(lèi)模板
關(guān)鍵字: template <class t>, template <typename t>

模板

       模板(template)是一個(gè)將數據類(lèi)型參化的工具,它提供了一種將代碼與數據類(lèi)相脫離的機制,即代碼不受具體的數據類(lèi)型的影響。模板分為函數模板和類(lèi)模板兩種。

      (1)函數模板

      函數模板是一種不說(shuō)明某些參數的數據類(lèi)型的函數。例如,下面定義了一個(gè)可對任何類(lèi)型變量進(jìn)行操作(求絕對值)的函數模板。

Cpp代碼
  1.  template <class T> //或寫(xiě)成:template <typename T>    函數參數的類(lèi)型T
  2.  T abs(T val)   
  3. {   
  4.        return val<0 ? -val : val;   
  5.  }  

   

   在函數模板被調用時(shí),編譯器根據實(shí)際參數的類(lèi)型確定模板參數T的類(lèi)型,并自動(dòng)生成一個(gè)對應的函數,即模板函數。模板參數的類(lèi)型不同,生成的模板函數也不同。

 

     例 1 函數模板的定義和使用

Cpp代碼
  1. #include <iostream.h>   
  2.   
  3. template <class T>            //定義模板   
  4. T abs(T val)                //定義函數模板   
  5. {   
  6.     return val<0 ? -val : val;   
  7. }   
  8.   
  9. void main()   
  10. {   
  11.     int i=100;   
  12.     cout <<abs(i)<<endl;    //類(lèi)型參數T替換為int   
  13.     long l=-12345L;   
  14.     cout <<abs(l)<<endl;    //類(lèi)型參數T替換為long   
  15.     float f=-125.78F;   
  16.     cout <<abs(f)<<endl;    //類(lèi)型參數T替換為float   
  17. }  

 

     定義函數模板時(shí)也可以使用多個(gè)類(lèi)型參數,這時(shí)每個(gè)類(lèi)型參數前面都要加上關(guān)鍵字class或typename,其間用逗分隔,其形式如下所示。

      template <class T1,class T2,class T3>

 

     例 2 使用多個(gè)類(lèi)型參數的函數模板

Cpp代碼
  1. #include <iostream.h>   
  2.   
  3. template <class T1,class T2>   
  4. T1 Max(T1 x,T2 y)   
  5. {   
  6.     return x>y ? x: (T1)y;   
  7. }   
  8.   
  9. void main()   
  10. {   
  11.     int i=100;   
  12.     float f=-125.78F;   
  13.     cout <<Max(i,f)<<endl;          //類(lèi)型參數T1替換為int,T2替換為float   
  14. }  

 

   (2)類(lèi)模板

         使用多個(gè)類(lèi)型參數的類(lèi)模板

Cpp代碼
  1. #include <iostream.h>   
  2.   
  3. template <class T1,class T2>          //使用2個(gè)類(lèi)型參數   類(lèi)的數據變量參數類(lèi)型T
  4. class MyTemClass                        //定義類(lèi)模板   
  5. {   
  6. private:   
  7.     T1 x;   
  8.     T2 y;   
  9. public:   
  10.     MyTemClass(T1 a,T2 b) { x=a;y=b; }  //構造函數   
  11.     void ShowMax()                      //輸出最大的數據成員   
  12.     {   
  13.         cout <<"MaxMember="<<(x>y?x:y)<<endl;   
  14.     }   
  15. };   
  16.   
  17. void main()   
  18. {   
  19.     int a=100;   
  20.     float b=123.45F;   
  21.     MyTemClass<int,float> mt(a,b);    //聲明類(lèi)模板的對象   
  22.     mt.ShowMax();   
  23. }  

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
模板——函數模板與類(lèi)模板
30分鐘了解C++11新特性
C++中模板使用詳解(轉)——寫(xiě)得非常棒,贊~ - 第四維空間 - C++博客
C 模板詳解(一)
模板
C++模板常用使用方法介紹
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久