乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C++ Templates 筆記

       海漩渦 2014-05-04
      第二章 函數(shù)模板

      ///max.hpp
      template <typename T>
      inline T const& max(T const& a,T const& b)
      {
          return a<b?b:a;
      }

      ///basics max.cpp
      #include <iostream>
      #include <string>
      #include "max.hpp"
      int main()
      {
          int i = 42;
          std::cout<<"max(7,i): "<< ::max(7,i)<<std::endl;

          double f1 = 3.4;
          double ff2 = -6.7;
          /// @brief max前的::是為了確認(rèn)調(diào)用的是全局名字空間的max(),而不是標(biāo)準(zhǔn)庫的std::max()
          std::count << "max(f1,f2): "<< ::max(f1,f2) <<std::endl;

          std::string s1="tanxiaohai";
          std::string s2 ="tanhuifang";
          std::count<<"max(s1,s2): "<<max(s1,s2)<<std::endl;
      }


      2.3模板參數(shù)

      函數(shù)模板有兩種類型參數(shù):
      1.模板參數(shù):位于模板名稱的前面,在一對(duì)尖括號(hào)內(nèi)部進(jìn)行聲明:
           template <typename T>

      2.調(diào)用參數(shù):位于函數(shù)模板后面,用圓括號(hào)進(jìn)行聲明
          max(T const& a,T const& b)

      解決不同類型的多參數(shù):
      (1)  可定義任意數(shù)量且不同類型的模板參數(shù):
          template <typename T1,typename T2 ...>

      (2)  函數(shù)模板的實(shí)參演繹:
          template <typename T>
          inline T const& max(T const& a,T const & b);

          max<double>(4,4.2)

      (3)  顯示指定模板實(shí)參:
          template <typename T1,typename T2,typename T3>
          inline T3 max(T1 const& a,T2 const& b)


      2.4重載函數(shù)模板
      重載解析可以看成是函數(shù)調(diào)用整個(gè)完整處理過程的一部分。

      對(duì)函數(shù)調(diào)用的處理方法:
      1.查找名稱,形成初始的重載集。
      2.有必要時(shí)對(duì)集合進(jìn)行修改,(模板演繹)
      3.刪除不匹配的候選函數(shù),得到可行的候選函數(shù)集。
      4.執(zhí)行重載解析來尋找最佳候選函數(shù),找到即是最佳候選函數(shù),否則為二義性。
      5.檢查最佳的候選函數(shù)。

       最佳匹配到最差匹配:

      1.完美匹配。參數(shù)類型和實(shí)參的類型相同,或參數(shù)的類型是指向?qū)崊㈩愋偷囊谩?/div>

      2.有細(xì)微調(diào)整匹配。如數(shù)組轉(zhuǎn)變、或添加const,讓類型int**的實(shí)參匹配類型為int const* const*.

      3.發(fā)生提升的匹配。是一種隱式類型轉(zhuǎn)換,把占位少的整數(shù)轉(zhuǎn)為占位多的類型。如bool、char、short轉(zhuǎn)為int、unsigned int、long、unsigned long等,float到double

      4.發(fā)生標(biāo)準(zhǔn)轉(zhuǎn)型(類型轉(zhuǎn)換)的匹配。

      5.發(fā)生用戶自定義轉(zhuǎn)型的匹配。允許任何種類的隱式類型轉(zhuǎn)換。

      6.和省略號(hào)匹配。省略號(hào)參數(shù)可以匹配任何類型。


      對(duì)于T類型的右值,T和Tconst& 的匹配程度一樣。
      對(duì)于T類型的左值,T和T&的匹配程度一樣。

      非模板優(yōu)先。

      指針轉(zhuǎn)型:
      1.任意標(biāo)準(zhǔn)轉(zhuǎn)型都要優(yōu)于bool
      2.從派生類指針到基類指針的轉(zhuǎn)型優(yōu)于到void*。
      3.函數(shù)的轉(zhuǎn)型涉及到類繼承體系中的多個(gè)類,優(yōu)先選擇派生路徑最短的轉(zhuǎn)型。



        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多