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

C++中模板(Template)詳解及其作用介紹

 更新時(shí)間:2021年09月07日 11:08:42   作者:我是小白呀  
這篇文章主要介紹了C++中模板(Template)的詳解及其作用介紹,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

概述

模板可以幫助我們提高代碼的可用性, 可以幫助我們減少開發(fā)的代碼量和工作量.

在這里插入圖片描述

函數(shù)模板

函數(shù)模板 (Function Template) 是一個(gè)對函數(shù)功能框架的描述. 在具體執(zhí)行時(shí), 我們可以根據(jù)傳遞的實(shí)際參數(shù)決定其功能. 例如:

int max(int a, int b, int c){
    a = a > b ? a:b;
    a = a > c ? a:c;

    return a;
}

long max(long a, long b, long c){
    a = a > b ? a:b;
    a = a > c ? a:c;

    return a;
}

double max(double a, double b, double c){
    a = a > b ? a:b;
    a = a > c ? a:c;

    return a;
}

寫成函數(shù)模板的形式:

template<typename T>
T max(T a, T b, T c){
    a = a > b ? a:b;
    a = a > c ? a:c;

    return a;
}

類模板

類模板 (Class Template) 是創(chuàng)建泛型類或函數(shù)的藍(lán)圖或公式.

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類型名為numtype
class Compare {
private:
    numtype x, y;
public:
    Compare(numtype a, numtype b){x=a; y=b;}
    numtype max() {return (x>y)?x:y;};
    numtype min() {return (x < y)?x:y;};
};

mian:

int main() {

    Compare<int> compare1(3,7);
    cout << compare1.max() << ", " << compare1.min() << endl;

    Compare<double> compare2(2.88, 1.88);
    cout << compare2.max() << ", " << compare2.min() << endl;

    Compare<char> compare3('a', 'A');
    cout << compare3.max() << ", " << compare3.min() << endl;

    return 0;

}

輸出結(jié)果:

7, 3
2.88, 1.88
a, A

模板類外定義成員函數(shù)

如果我們需要在模板類外定義成員函數(shù), 我們需要在每個(gè)函數(shù)都使用類模板. 格式:

template<class 虛擬類型參數(shù)>
函數(shù)類型 類模板名<虛擬類型參數(shù)>::成員函數(shù)名(函數(shù)形參表列) {}

類模板:

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類型名為numtype
class Compare {
private:
    numtype x, y;
public:
    Compare(numtype a, numtype b);
    numtype max();
    numtype min();
};

template<class numtype>
Compare<numtype>::Compare(numtype a,numtype b) {
    x=a;
    y=b;
}

template<class numtype>
numtype Compare<numtype>::max( ) {
    return (x>y)?x:y;
}

template<class numtype>
numtype Compare<numtype>::min( ) {
    return (x>y)?x:y;
}

#endif //PROJECT2_COMPARE_H

類庫模板

類庫模板 (Standard Template Library). 例如:

#include <vector>
#include <iostream>
using namespace std;


int main() {
    int i = 0;
    vector<int> v;
    for (int i = 0; i < 10; ++i) {
        v.push_back(i);  // 把元素一個(gè)一個(gè)存入到vector中
    }

    for (int j = 0; j < v.size(); ++j) {
        cout << v[j] << " ";  // 把每個(gè)元素顯示出來
    }

    return 0;
}

輸出結(jié)果:

0 1 2 3 4 5 6 7 8 9

抽象和實(shí)例

在這里插入圖片描述

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

相關(guān)文章

  • Qt可視化大屏布局的實(shí)現(xiàn)

    Qt可視化大屏布局的實(shí)現(xiàn)

    數(shù)據(jù)可視化大屏在項(xiàng)目中的使用很常見,本文主要介紹了Qt可視化大屏布局的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-02-02
  • 詳解C語言中的memset()函數(shù)

    詳解C語言中的memset()函數(shù)

    這篇文章主要介紹了C語言中的memset()函數(shù),包括其與memcpy()函數(shù)的區(qū)別,需要的朋友可以參考下
    2015-08-08
  • C++11新特性之a(chǎn)uto的使用

    C++11新特性之a(chǎn)uto的使用

    熟悉腳本語言的人都知道,很多腳本語言都引入了“類型自動推斷”技術(shù):比如Python,可以直接聲明變量,在運(yùn)行時(shí)進(jìn)行類型檢查。隨著C++11標(biāo)準(zhǔn)的發(fā)布,C++語言也引入了類型自動推斷的功能。這篇文章主要介紹了C++11新特性之a(chǎn)uto的使用,有需要的朋友們可以參考借鑒。
    2016-12-12
  • QT調(diào)用vs2019生成的c++動態(tài)庫的方法實(shí)現(xiàn)

    QT調(diào)用vs2019生成的c++動態(tài)庫的方法實(shí)現(xiàn)

    本文主要介紹了QT調(diào)用vs2019生成的c++動態(tài)庫的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 一文詳解C++的程序流程控制

    一文詳解C++的程序流程控制

    這篇文章主要介紹了一文詳解C++的程序流程控制,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • C++你可能不知道地方小結(jié)

    C++你可能不知道地方小結(jié)

    c++中編譯器替我們完成了許多事情,我們可能不知道,但也可能習(xí)以為常
    2013-01-01
  • C語言結(jié)構(gòu)及隊(duì)列實(shí)現(xiàn)示例詳解

    C語言結(jié)構(gòu)及隊(duì)列實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了C語言實(shí)現(xiàn)隊(duì)列示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • C/C++?Qt?Dialog?對話框組件應(yīng)用技巧

    C/C++?Qt?Dialog?對話框組件應(yīng)用技巧

    這篇文章主要介紹了C/C++?Qt?Dialog?對話框組件應(yīng)用,這里我將總結(jié)本人在開發(fā)過程中常用到的標(biāo)準(zhǔn)對話框的使用技巧,對C++?對話框組件相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • C++實(shí)現(xiàn)AVL樹的基本操作指南

    C++實(shí)現(xiàn)AVL樹的基本操作指南

    AVL樹是高度平衡的而二叉樹,它的特點(diǎn)是AVL樹中任何節(jié)點(diǎn)的兩個(gè)子樹的高度最大差別為1,下面這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)AVL樹的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • C++淺析析構(gòu)函數(shù)的特征

    C++淺析析構(gòu)函數(shù)的特征

    既然在創(chuàng)建對象時(shí)有構(gòu)造函數(shù)(給成員初始化),那么在銷毀對象時(shí)應(yīng)該還有一個(gè)清除成員變量數(shù)據(jù)的操作咯,析構(gòu)函數(shù)與構(gòu)造函數(shù)功能相反,析構(gòu)函數(shù)不是完成對象的銷毀,局部對象銷毀工作是由編譯器完成的。而對象在銷毀時(shí)會自動調(diào)用析構(gòu)函數(shù),完成類的一些資源清理工作
    2022-07-07

最新評論

长葛市| 闸北区| 临沂市| 晋城| 集安市| 根河市| 秀山| 宁阳县| 泊头市| 河津市| 太湖县| 顺义区| 汝州市| 滁州市| 金阳县| 阿尔山市| 黔南| 澄江县| 永嘉县| 遂平县| 城固县| 黑水县| 苏尼特右旗| 商河县| 石首市| 夏河县| 孝昌县| 黎平县| 藁城市| 合肥市| 大化| 体育| 平陆县| 慈利县| 唐海县| 建水县| 闵行区| 台南县| 浦江县| 岢岚县| 巴中市|