日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于类模板怎么用的简单介绍

發(fā)布時間:2025/5/22 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于类模板怎么用的简单介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

類模板的意義:
一般是減少類體內(nèi)容一致但參數(shù)類型不同的類的編寫;
類模板的應(yīng)用流程:
1.首先你需要先寫一個普通的類。參數(shù)類型先人選一樣

class Compare{private:int a,b;public:Compare(int aa,int bb):a(aa),b(bb){}int max(){return a>b?a:b;}int min(){return a<b?a:b;} };

2.寫出上面的基礎(chǔ)類,那么我們接下來的工作就是聲明類模板以及虛擬類型名。

template <class T> //聲明一個模板,虛擬類型名為T

還有把上面1中的基礎(chǔ)類中的int全部替換成T
就會是這個樣子

template<class T> class Compare{private:T a,b;public:Compare(T aa,T bb):a(aa),b(bb){}T max(){return a>b?a:b;}T min(){return a<b?a:b;} };

3.那么聲明和定義已經(jīng)完成了,那么我們在main函數(shù)里要怎么應(yīng)用呢?
用起來也很簡單。
我們先說普通的定義

Compare c(1,2);

大概是這樣子的,那么我們用類模板的時候呢,需要告訴模板,你這里面的虛擬T是什么類型,所以是這個樣子

Compare <double>c(1.2,1.3);

看到不同的地方了吧,也就是多了<double>。so,每次構(gòu)造對象時,你都需要都過<double>去告訴它,你是一個怎樣的對象。

類模板大致的也就以上這些東西了,但是還是有一個地方需要注意的:那就是 類模板成員函數(shù)在類外定義是不一樣的哦,老規(guī)矩,我們先看看普通的是怎么的

int Compare::max(){return a>b?a:b;}

那類模板有什么不一樣的呢?

template<class T> T Compare<T>::max(){return a>b?a:b;}

很明顯就能看到上面的不同,多了一行聲明,然后就是告訴函數(shù)調(diào)用你的對象的類型是怎樣的。如果沒有聲明,那么我們不知道這個函數(shù)里面的T是什么,所以必須有聲明很容易理解。<T>在類外,想要聲明對象或者調(diào)用對象成員函數(shù)或者定義對象成員函數(shù)的時候都必須告訴它你是什么類型,因為在類模板里是T虛擬類型,所以你在外面也需要告訴它,你是T類型。而如果我們在main里需要構(gòu)造對象的時候,這個時候就是虛擬T了,而是真正的int,double等等。也就是對應(yīng)的<int>``<double>等等。

大概就這么多,有需要再回來復(fù)習(xí)。

總結(jié)

以上是生活随笔為你收集整理的关于类模板怎么用的简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。