小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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前的::是為了確認調(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ù):位于模板名稱的前面,在一對尖括號內(nèi)部進行聲明:
     template <typename T>

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

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

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

    max<double>(4,4.2)

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


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

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

 最佳匹配到最差匹配:

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

2.有細微調(diào)整匹配。如數(shù)組轉(zhuǎn)變、或添加const,讓類型int**的實參匹配類型為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.和省略號匹配。省略號參數(shù)可以匹配任何類型。


對于T類型的右值,T和Tconst& 的匹配程度一樣。
對于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)型涉及到類繼承體系中的多個類,優(yōu)先選擇派生路徑最短的轉(zhuǎn)型。



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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多