淺析C++中類模板的用法
C++類模板
C++類模板是一種用于創(chuàng)建通用類的工具,它允許我們定義一個通用類,支持多種類型。
定義類模板
C++中定義類模板的語法如下:
template<class T>
class ClassName {
public:
ClassName(T arg1, T arg2, ...){
// constructor code
}
T getMax();
T getMin();
// ...
private:
T arg1, arg2, ...;
};其中,template<class T>表明T是一個類型參數(shù),T是我們要定義的通用類型,一旦T被定義,我們就可以使用它來定義類的成員。
接下來,我們可以使用類模板來創(chuàng)建具有通用功能的類的對象。例如,考慮下面的示例:
#include<iostream>
using namespace std;
template<class T>
class Example {
public:
Example(T a, T b) {
this->a = a;
this->b = b;
}
void show() {
cout<< "a: "<< a <<endl;
cout<< "b: "<< b <<endl;
}
private:
T a;
T b;
};
int main() {
Example<int> example_int(5, 6);
example_int.show();
Example<string> example_string("hello", "world");
example_string.show();
return 0;
}上面的代碼中,我們定義了一個類模板Example,并在其中定義了兩個類型相同的數(shù)據(jù)成員a和b。我們可以使用類模板Example創(chuàng)建支持整數(shù)類型和字符串類型的對象example_int和example_string。執(zhí)行程序輸出如下:
a: 5
b: 6
a: hello
b: world
類模板成員函數(shù)的定義
C++類模板可以定義成員函數(shù),成員函數(shù)可以是訪問控制的任何類型:public、protected和private。
定義成員函數(shù)的形式與普通類相同:
template<class T>
class Example {
public:
Example(T a, T b) {
this->a = a;
this->b = b;
}
void show() {
cout<< "a: "<< a <<endl;
cout<< "b: "<< b <<endl;
}
T max() {
return a > b ? a : b;
}
private:
T a;
T b;
};
int main() {
Example<int> example_int(5, 6);
example_int.show();
Example<string> example_string("hello", "world");
example_string.show();
cout << example_int.max() << endl;
cout << example_string.max() << endl;
return 0;
}在上面的示例中,我們新增了成員函數(shù)T max(),它返回兩個數(shù)據(jù)成員a和b中的較大值。
輸出的結(jié)果如下:
a: 5
b: 6
a: hello
b: world
6
world
注意我們調(diào)用成員函數(shù)max的時候可以使用不同類型的實例。
總結(jié)
在這篇文章中,我們介紹了C++類模板的基礎(chǔ)知識。我們可以使用類模板來定義通用的類,支持多種類型。我們還了解了如何定義類模板,并創(chuàng)建了支持整數(shù)類型和字符串類型的對象。最后我們學(xué)習(xí)了類模板成員函數(shù)的定義,以及如何在調(diào)用時指定不同的數(shù)據(jù)類型。
到此這篇關(guān)于淺析C++中類模板的用法的文章就介紹到這了,更多相關(guān)C++類模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++對象內(nèi)存分布詳解(包括字節(jié)對齊和虛函數(shù)表)
下面小編就為大家?guī)硪黄狢++對象內(nèi)存分布詳解(包括字節(jié)對齊和虛函數(shù)表)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
c++ 求數(shù)組最大最小值函數(shù)的實現(xiàn)
這篇文章主要介紹了c++ 求數(shù)組最大最小值函數(shù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
C++中關(guān)于多態(tài)實現(xiàn)和使用方法
這篇文章主要介紹了C++中關(guān)于多態(tài)實現(xiàn)和使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07

