淺析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中的較大值。
輸出的結果如下:
a: 5
b: 6
a: hello
b: world
6
world
注意我們調(diào)用成員函數(shù)max的時候可以使用不同類型的實例。
總結
在這篇文章中,我們介紹了C++類模板的基礎知識。我們可以使用類模板來定義通用的類,支持多種類型。我們還了解了如何定義類模板,并創(chuàng)建了支持整數(shù)類型和字符串類型的對象。最后我們學習了類模板成員函數(shù)的定義,以及如何在調(diào)用時指定不同的數(shù)據(jù)類型。
到此這篇關于淺析C++中類模板的用法的文章就介紹到這了,更多相關C++類模板內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C++靜態(tài)成員函數(shù)不能調(diào)用非靜態(tài)成員變量(詳解)
下面小編就為大家?guī)硪黄狢++靜態(tài)成員函數(shù)不能調(diào)用非靜態(tài)成員變量(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
C++調(diào)用matlab引擎實現(xiàn)三維圖的繪制
這篇文章主要為大家詳細介紹了C++如何調(diào)用matlab引擎實現(xiàn)三維圖的繪制,文中的示例代碼講解詳細,對我們學習C++和Matlab有一定的幫助,需要的可以參考一下2022-12-12

