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

C++ template用法案例詳解

 更新時(shí)間:2021年09月07日 09:45:02   作者:keneyr  
這篇文章主要介紹了C++ template用法案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

有必要記一下這種一眼看上去就很高級(jí)的用法。還是編程不夠多。都沒(méi)用過(guò)這個(gè)。

相信用過(guò)c++的人,即便沒(méi)用過(guò),也肯定都聽(tīng)說(shuō)過(guò)模板類這個(gè)詞。嗨不巧了,今天講的就是模板類。

模板是c++支持參數(shù)化多態(tài)的工具,使用模板可以使用戶為類或者函數(shù)聲明一種一般模式,使得類中的某些數(shù)據(jù)成員或者成員函數(shù)的參數(shù)、返回值取得任意類型。因此可以說(shuō),模板是一種對(duì)類型進(jìn)行參數(shù)化的工具。

template<class T>  和  template<typename T> 都可以用來(lái)定義函數(shù)模板類模板,在使用上,他們倆沒(méi)有本質(zhì)的區(qū)別。

函數(shù)模板針對(duì)僅參數(shù)類型不同的函數(shù);類模板針對(duì)僅數(shù)據(jù)成員和成員函數(shù)類型不同的類。

Note:模板的聲明或定義只能在全局,命名空間或類范圍內(nèi)進(jìn)行。不能再局部范圍,函數(shù)內(nèi)進(jìn)行。

一、函數(shù)模板

template< class 形參名,class 形參名,......> 返回類型 函數(shù)名(參數(shù)列表)   { 函數(shù)體 }

舉個(gè)例子:template <class T> void swap(T& a,T& b){}

當(dāng)調(diào)用這樣的模板函數(shù)時(shí),類型T就會(huì)被調(diào)用時(shí)的類型所代替。如果swap(a, b),a,b都是int類型,那么模板函數(shù)swap中的形參T就會(huì)被int所代替,模板函數(shù)就會(huì)變成swap(int &a,int &b)。而當(dāng)swap(a,b),a,b都是double類型,那么模板函數(shù)swap中的形參T就會(huì)被double所代替,模板函數(shù)就會(huì)變成swap(double &a,double &b),這樣如果我們的程序中交換變量的值就不再受限于類型了。

二、類模板

template< class 形參名,class 形參名,......> class 類名 {...};

舉個(gè)例子:template <class T> class A { public:   T a; T b;   T hy(T c, T &d); };

在類A中聲明了兩個(gè)類型為T的成員變量a和b,還聲明了一個(gè)返回類型為T帶兩個(gè)參數(shù)類型為T的函數(shù)hy。

不講太難的,恩太難的我也不會(huì)啊。就寫個(gè)簡(jiǎn)單的例子把,對(duì)我足夠了:

TemplateDemo.h

#ifndef TEMPLATE_DEMO_HXX
#define TEMPLATE_DEMO_HXX 
 
template<class T> class A{
     public:
         T g(T a,T b);
         A();
 };
 
#endif

TemplateDemo.cpp

#include<iostream.h>
#include "TemplateDemo.h" 
template<class T> A<T>::A(){}
 
template<class T> T A<T>::g(T a,T b){
     return a+b;
}
 
void main(){
     A<int> a;
     cout<<a.g(2,3.2)<<endl;

-----------------------------------------------------------------以下可不看-----------------------------------------

現(xiàn)在再看的Kinect的那個(gè)代碼:

stdafx.h

template<class Interface>
 
inline void SafeRelease(Interface *& pInterfaceToRelease)
{
    if (pInterfaceToRelease != NULL)
    {
        pInterfaceToRelease->Release();
        pInterfaceToRelease = NULL;
    }
}

很顯然是聲明了函數(shù)模板,Interface是一種自定義的類型:

BodyBasics.cpp

#include "stdafx.h"
 
...
 
CBodyBasics::~CBodyBasics()
{
    DiscardDirect2DResources();
 
    // clean up Direct2D
    SafeRelease(m_pD2DFactory);
 
    // done with body frame reader
    SafeRelease(m_pBodyFrameReader);
 
    // done with coordinate mapper
    SafeRelease(m_pCoordinateMapper);
 
    // close the Kinect Sensor
    if (m_pKinectSensor)
    {
        m_pKinectSensor->Close();
    }
 
    SafeRelease(m_pKinectSensor);
}

很顯然ID2D1Factory是一個(gè)接口。

-----------------------------------------END-------------------------------------------------

參考博客:https://www.cnblogs.com/yuzhuwei/p/4171070.html

                 https://blog.csdn.net/biu__biu_biu/article/details/78020620

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

相關(guān)文章

  • 詳解C++中vector的理解以及模擬實(shí)現(xiàn)

    詳解C++中vector的理解以及模擬實(shí)現(xiàn)

    vector是表示可變大小數(shù)組的序列容器。這篇文章主要為大家詳細(xì)介紹了vector的理解以及模擬實(shí)現(xiàn),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-03-03
  • C++實(shí)現(xiàn)的大數(shù)相乘算法示例

    C++實(shí)現(xiàn)的大數(shù)相乘算法示例

    這篇文章主要介紹了C++實(shí)現(xiàn)的大數(shù)相乘算法,結(jié)合實(shí)例形式分析了C++大數(shù)相乘的概念、原理及代碼實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-08-08
  • c++制作的時(shí)間函數(shù)類

    c++制作的時(shí)間函數(shù)類

    本文給大家分享的是一個(gè)個(gè)人使用C++編寫的時(shí)間函數(shù)類,主要是實(shí)現(xiàn)了類的定義和調(diào)用,相比較來(lái)說(shuō)還算比較復(fù)雜的時(shí)間類了,推薦給小伙伴們,有需要的朋友可以參考下。
    2015-03-03
  • C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷實(shí)例分析

    C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷實(shí)例分析

    這篇文章主要介紹了C++實(shí)現(xiàn)圖的鄰接矩陣存儲(chǔ)和廣度、深度優(yōu)先遍歷,實(shí)例分析了C++實(shí)現(xiàn)圖的遍歷技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C++引用的使用與const修飾符

    C++引用的使用與const修飾符

    這篇文章介紹了C++引用使用與const修飾符,引用是給已經(jīng)定義的變量一個(gè)別名,可以簡(jiǎn)單理解成同一個(gè)變量的昵稱,既然是昵稱或者是別名,顯然它和原本的變量名有著同樣的效力,所以我們對(duì)別名進(jìn)行修改,原本的變量值也一樣會(huì)發(fā)生變化,下面來(lái)看看詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-11-11
  • vscode分享代碼插件Polacode介紹

    vscode分享代碼插件Polacode介紹

    這篇文章主要介紹了vscode分享代碼插件Polacode的相關(guān)知識(shí),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 詳解Matlab繪制3D玫瑰花的方法(內(nèi)附旋轉(zhuǎn)版本)

    詳解Matlab繪制3D玫瑰花的方法(內(nèi)附旋轉(zhuǎn)版本)

    這篇文章主要為大家介紹了如何利用Matlab繪制3D版的玫瑰花以及旋轉(zhuǎn)版的3D玫瑰花,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以動(dòng)手試一試
    2022-03-03
  • C語(yǔ)言實(shí)現(xiàn)解析csv格式文件的示例代碼

    C語(yǔ)言實(shí)現(xiàn)解析csv格式文件的示例代碼

    CSV,有時(shí)也稱為字符分隔值,其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本),本文為大家整理了C語(yǔ)言解析csv文件的方法,需要的可以參考一下
    2023-06-06
  • C語(yǔ)言指針入門的簡(jiǎn)單實(shí)例教程

    C語(yǔ)言指針入門的簡(jiǎn)單實(shí)例教程

    這篇文章主要給大家介紹了關(guān)于C語(yǔ)言指針入門的簡(jiǎn)單實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C++中delete函數(shù)的具體使用

    C++中delete函數(shù)的具體使用

    本文主要介紹了C++中delete函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03

最新評(píng)論

烟台市| 河北省| 临武县| 桐柏县| 木里| 扎鲁特旗| 延长县| 阿城市| 万宁市| 南郑县| 杂多县| 塘沽区| 土默特右旗| 台南市| 久治县| 从江县| 桂平市| 赤水市| 隆回县| 扶风县| 格尔木市| 曲松县| 略阳县| 凤凰县| 南部县| 芜湖市| 萝北县| 保山市| 漳浦县| 房产| 和平县| 泰来县| 江达县| 建阳市| 天祝| 乐业县| 托里县| 竹溪县| 融水| 拜城县| 龙口市|