最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何C++使用模板特化功能

 更新時間:2022年03月09日 16:15:59   作者:機器學習入坑者  
這篇文章主要介紹了如何C++使用模板特化功能,通過定義模板,使得函數(shù)或者類不依賴于特定的類型,這樣大幅提升了代碼的復用性。更多詳細內(nèi)容需要的小伙伴可以參考一下

前言:

通過定義模板,使得函數(shù)或者類不依賴于特定的類型,這樣大幅提升了代碼的復用性。

然而,不管是類模板還是函數(shù)模板,對所有的類型都是采用相同的處理方式(同一份代碼)。為此,C++提出了“模板特化的概念”,對特定類型提供模板的改造。

比如,對于函數(shù)模板來說,可以通過特化指定特定的類型,針對此特定類型對函數(shù)體內(nèi)容進行重寫,使得函數(shù)對特定類型實現(xiàn)特定功能。

注意:

按照語法,對函數(shù)模板和類模板進行特化后,就變?yōu)槠胀ê瘮?shù)和普通的類,而不再是模板。

1、函數(shù)模板的特化

對于函數(shù)模板來說,其特化語法如下:

template <>
返回類型 已定義的函數(shù)模板名<具體類型>(參數(shù)表){
    針對特定類型的具體實現(xiàn);
}

其中“template <>”是特化的固定格式。下面的例子定義了函數(shù)模板play(),并對此模板進行特化,特化過程中指定具體類型為“int”:

// 已定義好的函數(shù)模板
template <class Q>
void play(Q p) {
?? ?printf("play with Q! \n");
}

// 對以定義好的函數(shù)模板play()進行特化
template <>?
void play<int>(int) {
?? ?printf("play with int! \n");
}

2、類模板的特化

類模板進行特化的語法如下:

template <>
class 類模板名<具體類型>{
    類定義;
}

類模板的成員函數(shù)在類外實現(xiàn)時,語法如下:

返回類型 類模板名<具體類型>::函數(shù)名{
    函數(shù)體;
}

下面是對類模板Duck進行特化的代碼,特化過程中指定了類型為"int":

template <class T>
class Duck {
public:
?? ?void run() { printf("T run! \n"); }
};

// 對類模板Duck進行特化
template <>
class Duck<int> {
public:
?? ?void run();
};
// 成員函數(shù)在模板類以外實現(xiàn)
void Duck<int>::run() {
?? ?printf("int run! \n");
}

到此這篇關(guān)于如何C++使用模板特化功能的文章就介紹到這了,更多相關(guān)C++模板特化功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • VC中BASE64編碼和解碼使用詳解

    VC中BASE64編碼和解碼使用詳解

    Base64是一種很常用的編碼方式,利用它可以將任何二進制的字符編碼到可打印的64個字符之中, 這樣,不管是圖片,中文文本等都可以編碼成只有ASCII的純文本。
    2015-11-11
  • 關(guān)于C++中strcpy函數(shù)例題講解

    關(guān)于C++中strcpy函數(shù)例題講解

    在本篇文章里小編給大家整理的是關(guān)于C++中strcpy函數(shù)例題講解內(nèi)容,需要的朋友們可以參考下。
    2020-05-05
  • c語言 漢諾塔算法代碼

    c語言 漢諾塔算法代碼

    c語言 漢諾塔算法代碼,需要的朋友可以參考一下
    2013-04-04
  • C++ 學習之旅 Windows程序內(nèi)部運行原理

    C++ 學習之旅 Windows程序內(nèi)部運行原理

    學習C++與.net不同的是,一定要搞清楚Windows程序內(nèi)部運行原理,因為他所涉及大多數(shù)是操作系統(tǒng)的調(diào)用,而.net畢竟是在.netFrameWork上唱戲
    2012-11-11
  • C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面

    C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面

    這篇文章主要為大家詳細介紹了C++實現(xiàn)坦克大戰(zhàn)小游戲EGE圖形界面,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • OpenCV實現(xiàn)二值圖像的邊緣光滑處理

    OpenCV實現(xiàn)二值圖像的邊緣光滑處理

    這篇文章主要為大家詳細介紹了OpenCV實現(xiàn)二值圖像的邊緣光滑處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 解決了個困擾了2天的問題,定點運算問題

    解決了個困擾了2天的問題,定點運算問題

    本文主要講解定點運算問題,需要的朋友可以參考一下。
    2016-06-06
  • 詳解C++ 引用

    詳解C++ 引用

    這篇文章主要介紹了C++ 引用的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C語言數(shù)據(jù)結(jié)構(gòu)之隊列算法詳解

    C語言數(shù)據(jù)結(jié)構(gòu)之隊列算法詳解

    這篇文章介紹了C語言數(shù)據(jù)結(jié)構(gòu)之隊列的算法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C++中的結(jié)構(gòu)體vector排序問題

    C++中的結(jié)構(gòu)體vector排序問題

    這篇文章主要介紹了C++中的結(jié)構(gòu)體vector排序問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11

最新評論

鹤山市| 奉新县| 乐亭县| 政和县| 阜平县| 蕉岭县| 平原县| 胶南市| 加查县| 建昌县| 来凤县| 佳木斯市| 富裕县| 咸阳市| 五台县| 东平县| 平和县| 凭祥市| 宁安市| 宁阳县| 渑池县| 海兴县| 茶陵县| 铜梁县| 临高县| 泸西县| 康保县| 南涧| 铅山县| 辽宁省| 赣州市| 敦化市| 南平市| 淮安市| 彰武县| 邵阳市| 张家港市| 建阳市| 高邑县| 连山| 五台县|