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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )

發布時間:2025/6/17 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

        • 函數模板
        • 類模板
        • 代碼示例



函數模板



1. 模板編程 : 類似于 Java 中的泛型編程 ;

  • ① 函數模板 : 對應著 Java 中的泛型方法 ;
  • ② 類模板 : 對應 Java 中的泛型類 ;

2. Java 中的泛型方法 :

void <T> fun( T t ){ }

3. C++ 中的模板方法 :

//函數模板 , 對應 Java 泛型方法 // 其中 typename 也可以寫成 class template <typename T> T add(T a, T b) {return a + b; }

4. 函數模板作用 : 避免反復定義重載函數 , 例如兩個數字相加時 , 需要考慮 int 類型數字相加 , float 類型數字相加 等 , 這些函數的內部行為都是一致的 , 如果使用了模板函數 , 就可以只寫一個模板方法即可 ;

5. 對應的函數重載 : 上述函數模板與下面的函數重載實現的功能部分一致 ;

int add(int a, int b) {return a + b; } float add(float a, float b) {return a + b; } double add(double a, double b) {return a + b; }

模板函數功能要比重載多很多 , 上面有很多類型沒有列出 ;

6. 代碼示例 :

  • ① 模板函數定義 :
//函數模板 , 對應 Java 泛型方法 // 其中 typename 也可以寫成 class template <typename T> T add(T a, T b) {return a + b; }
  • ② 模板函數調用代碼示例 :
//調用模板函數 , 傳入兩個 int 類型參數int number_int = add(8, 8);cout << " 函數模板 兩個 int 類型相加 : " << number_int << endl;//調用模板函數 , 傳入兩個 float 類型參數float number_float = add(0.8f, 0.8f);cout << " 函數模板 兩個 float 類型相加 : " << number_float << endl;

③ 執行結果 :

函數模板 兩個 int 類型相加 : 16函數模板 兩個 float 類型相加 : 1.6

類模板



1. 類模板示例 :

//類模板 template <class T , class E> class Template { public:T add(T t, E e) {return t + e;} };

2. 類模板調用 :

//2. 類模板Template <float, int> templ;float result = templ.add(0.8f, 88);cout << "輸出模板類計算結果 : " << result << endl;

3. 執行結果 :

輸出模板類計算結果 : 88.8

C++ 中創建了大量的模板類 , 如 queue , vector , list 等容器 , 都是模板類 ;



代碼示例



1. 函數模板與類模板定義 :

//函數模板 , 對應 Java 泛型方法 // 其中 typename 也可以寫成 class template <typename T> T add(T a, T b) {return a + b; }//類模板 template <class T , class E> class Template { public:T add(T t, E e) {return t + e;} };

2. 模板編程調用 :

//V. 模板編程//1. 函數模板 //調用模板函數 , 傳入兩個 int 類型參數int number_int = add(8, 8);cout << " 函數模板 兩個 int 類型相加 : " << number_int << endl;//調用模板函數 , 傳入兩個 float 類型參數float number_float = add(0.8f, 0.8f);cout << " 函數模板 兩個 float 類型相加 : " << number_float << endl;//2. 類模板Template <float, int> templ;float result = templ.add(0.8f, 88);cout << "輸出模板類計算結果 : " << result << endl;

3. 執行結果 :

函數模板 兩個 int 類型相加 : 16函數模板 兩個 float 類型相加 : 1.6 輸出模板類計算結果 : 88.8

總結

以上是生活随笔為你收集整理的【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。