欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

概述

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

在這里插入圖片描述

函數(shù)模板

函數(shù)模板 (Function Template) 是一個(gè)對(duì)函數(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;
}

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

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

    return a;
}

類(lèi)模板

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

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類(lèi)型名為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

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

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

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

類(lèi)模板:

#ifndef PROJECT2_COMPARE_H
#define PROJECT2_COMPARE_H

template <class numtype>  // 虛擬類(lèi)型名為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

類(lèi)庫(kù)模板

類(lèi)庫(kù)模板 (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è)元素顯示出來(lái)
    }

    return 0;
}

輸出結(jié)果:

0 1 2 3 4 5 6 7 8 9

抽象和實(shí)例

在這里插入圖片描述

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

相關(guān)文章

  • C++ 風(fēng)靡一時(shí)的連連看游戲的實(shí)現(xiàn)流程詳解

    C++ 風(fēng)靡一時(shí)的連連看游戲的實(shí)現(xiàn)流程詳解

    游戲“連連看”是源自臺(tái)灣的桌面小游戲,自從流入大陸以來(lái)風(fēng)靡一時(shí),也吸引眾多程序員開(kāi)發(fā)出多種版本的“連連看”。這其中,顧芳編寫(xiě)的“阿達(dá)連連看”以其精良的制作廣受好評(píng),這也成為顧方“阿達(dá)系列軟件”的核心產(chǎn)品。并于2004年,取得國(guó)家版權(quán)局的計(jì)算機(jī)軟件登記證書(shū)
    2021-11-11
  • C++學(xué)習(xí)之移動(dòng)語(yǔ)義與智能指針詳解

    C++學(xué)習(xí)之移動(dòng)語(yǔ)義與智能指針詳解

    智能指針和移動(dòng)語(yǔ)義是迄今為止,最難理解的兩個(gè)概念,下面這篇文章主要給大家介紹了關(guān)于C++學(xué)習(xí)之移動(dòng)語(yǔ)義與智能指針的相關(guān)資料,需要的朋友可以參考下
    2021-05-05
  • C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例

    C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例

    今天小編就為大家分享一篇關(guān)于C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換成int整形值的示例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解單向鏈表

    C語(yǔ)言數(shù)據(jù)結(jié)構(gòu)超詳細(xì)講解單向鏈表

    鏈表可以說(shuō)是一種最為基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)了,而單向鏈表更是基礎(chǔ)中的基礎(chǔ)。鏈表是由一組元素以特定的順序組合或鏈接在一起的,不同元素之間在邏輯上相鄰,但是在物理上并不一定相鄰。在維護(hù)一組數(shù)據(jù)集合時(shí),就可以使用鏈表,這一點(diǎn)和數(shù)組很相似
    2022-03-03
  • C++中繼承與多態(tài)的基礎(chǔ)虛函數(shù)類(lèi)詳解

    C++中繼承與多態(tài)的基礎(chǔ)虛函數(shù)類(lèi)詳解

    這篇文章主要給大家介紹了關(guān)于C++中繼承與多態(tài)的基礎(chǔ)虛函數(shù)類(lèi)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • C語(yǔ)言中進(jìn)程信號(hào)集的相關(guān)操作函數(shù)詳解

    C語(yǔ)言中進(jìn)程信號(hào)集的相關(guān)操作函數(shù)詳解

    這篇文章主要介紹了C語(yǔ)言中進(jìn)程信號(hào)集的相關(guān)操作函數(shù)詳解,包括sigismember函數(shù)和sigfillset函數(shù)以及sigemptyset函數(shù)的用法,需要的朋友可以參考下
    2015-09-09
  • 解析C語(yǔ)言中空指針、空指針常量、NULL & 0的詳解

    解析C語(yǔ)言中空指針、空指針常量、NULL & 0的詳解

    本篇文章是對(duì)C語(yǔ)言中空指針、空指針常量、NULL & 0 進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C/C++解析文件名和目錄路徑的方法

    C/C++解析文件名和目錄路徑的方法

    #include <libgen.h> 是一個(gè) C/C++ 語(yǔ)言的頭文件,主要用于字符串處理,特別是在處理文件路徑時(shí),它提供了一些函數(shù)來(lái)幫助你解析文件名和目錄路徑,本文就給大家介紹一下C/C++解析文件名和目錄路徑的方法,需要的朋友可以參考下
    2024-10-10
  • C++簡(jiǎn)明分析講解布爾類(lèi)型及引用

    C++簡(jiǎn)明分析講解布爾類(lèi)型及引用

    布爾型(Boolean),是一種類(lèi)型變量類(lèi)型,引用(reference)就是C++對(duì)C語(yǔ)言的重要擴(kuò)充。引用就是某一變量(目標(biāo))的一個(gè)別名,對(duì)引用的操作與對(duì)變量直接操作完全一樣
    2022-04-04
  • C++利用遞歸實(shí)現(xiàn)走迷宮

    C++利用遞歸實(shí)現(xiàn)走迷宮

    這篇文章主要為大家詳細(xì)介紹了C++利用遞歸實(shí)現(xiàn)走迷宮,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03

最新評(píng)論