亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C++ template用法案例詳解

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

有必要記一下這種一眼看上去就很高級的用法。還是編程不夠多。都沒用過這個。

相信用過c++的人,即便沒用過,也肯定都聽說過模板類這個詞。嗨不巧了,今天講的就是模板類。

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

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

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

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

一、函數(shù)模板

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

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

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

二、類模板

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

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

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

不講太難的,恩太難的我也不會啊。就寫個簡單的例子把,對我足夠了:

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的那個代碼:

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是一個接口。

-----------------------------------------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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語言實現(xiàn)掃雷游戲(初級版)

    C語言實現(xiàn)掃雷游戲(初級版)

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)掃雷游戲初級版,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • C++ 整型與字符串的互轉(zhuǎn)方式

    C++ 整型與字符串的互轉(zhuǎn)方式

    今天小編就為大家分享一篇C++ 整型與字符串的互轉(zhuǎn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • 深入java線程池的使用詳解

    深入java線程池的使用詳解

    本篇文章是對java線程池的使用進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • c++ 完備的運行時類型信息(動態(tài)類型信息)

    c++ 完備的運行時類型信息(動態(tài)類型信息)

    這篇文章主要介紹了c++ 完備的運行時類型信息,需要的朋友可以參考下
    2017-07-07
  • C語言柔性數(shù)組詳解

    C語言柔性數(shù)組詳解

    這篇文章主要介紹了C語言柔性數(shù)組,通過實例分析了不完整類型、結(jié)構(gòu)體及柔性數(shù)組等概念,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • 適合新手小白DEV?C++的使用方法

    適合新手小白DEV?C++的使用方法

    Dev-C++是一個Windows環(huán)境下C/C++的集成開發(fā)環(huán)境(IDE),它是一款自由軟件,遵守GPL,下面這篇文章主要給大家介紹了關(guān)于適合新手小白DEV?C++的使用方法,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • C++實現(xiàn)屏幕截圖

    C++實現(xiàn)屏幕截圖

    這篇文章主要為大家詳細介紹了C++實現(xiàn)屏幕截圖功能,截圖自動保存為png格式文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 一文讀懂c++11 Lambda表達式

    一文讀懂c++11 Lambda表達式

    這篇文章主要介紹了c++11 Lambda表達式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下
    2020-08-08
  • dev-c++創(chuàng)建lib(靜態(tài)鏈接庫)文件的實現(xiàn)步驟

    dev-c++創(chuàng)建lib(靜態(tài)鏈接庫)文件的實現(xiàn)步驟

    本文主要介紹了dev-c++創(chuàng)建lib(靜態(tài)鏈接庫)文件的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • C++高并發(fā)內(nèi)存池的實現(xiàn)

    C++高并發(fā)內(nèi)存池的實現(xiàn)

    本文主要介紹了C++高并發(fā)內(nèi)存池的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07

最新評論