91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中類模板如何使用

發布時間:2023-04-17 15:31:17 來源:億速云 閱讀:139 作者:iii 欄目:開發技術

這篇“C++中類模板如何使用”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“C++中類模板如何使用”文章吧。

C++類模板

C++類模板是一種用于創建通用類的工具,它允許我們定義一個通用類,支持多種類型。

定義類模板

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是一個類型參數,T是我們要定義的通用類型,一旦T被定義,我們就可以使用它來定義類的成員。

接下來,我們可以使用類模板來創建具有通用功能的類的對象。例如,考慮下面的示例:

#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,并在其中定義了兩個類型相同的數據成員a和b。我們可以使用類模板Example創建支持整數類型和字符串類型的對象example_int和example_string。執行程序輸出如下:

a: 5
b: 6
a: hello
b: world

類模板成員函數的定義

C++類模板可以定義成員函數,成員函數可以是訪問控制的任何類型:public、protected和private。

定義成員函數的形式與普通類相同:

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;
}

在上面的示例中,我們新增了成員函數T max(),它返回兩個數據成員a和b中的較大值。

輸出的結果如下:

a: 5
b: 6
a: hello
b: world
6
world

注意我們調用成員函數max的時候可以使用不同類型的實例。

以上就是關于“C++中類模板如何使用”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

大安市| 公主岭市| 托克托县| 石河子市| 特克斯县| 金堂县| 平顶山市| 墨江| 新田县| 武强县| 婺源县| 定结县| 杨浦区| 光山县| 兴文县| 亚东县| 凤翔县| 南汇区| 宜章县| 巴中市| 宁乡县| 宜宾市| 洪湖市| 泗阳县| 永修县| 闻喜县| 吉木萨尔县| 尚义县| 卓尼县| 衡山县| 苏尼特右旗| 景东| 从化市| 古交市| 隆昌县| 永丰县| 万荣县| 潮安县| 文山县| 和平区| 扬中市|