【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )
生活随笔
收集整理的這篇文章主要介紹了
【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
- 函數(shù)模板
- 類模板
- 代碼示例
函數(shù)模板
1. 模板編程 : 類似于 Java 中的泛型編程 ;
- ① 函數(shù)模板 : 對應(yīng)著 Java 中的泛型方法 ;
- ② 類模板 : 對應(yīng) Java 中的泛型類 ;
2. Java 中的泛型方法 :
void <T> fun( T t ){ }3. C++ 中的模板方法 :
//函數(shù)模板 , 對應(yīng) Java 泛型方法 // 其中 typename 也可以寫成 class template <typename T> T add(T a, T b) {return a + b; }4. 函數(shù)模板作用 : 避免反復(fù)定義重載函數(shù) , 例如兩個(gè)數(shù)字相加時(shí) , 需要考慮 int 類型數(shù)字相加 , float 類型數(shù)字相加 等 , 這些函數(shù)的內(nèi)部行為都是一致的 , 如果使用了模板函數(shù) , 就可以只寫一個(gè)模板方法即可 ;
5. 對應(yīng)的函數(shù)重載 : 上述函數(shù)模板與下面的函數(shù)重載實(shí)現(xiàn)的功能部分一致 ;
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; }模板函數(shù)功能要比重載多很多 , 上面有很多類型沒有列出 ;
6. 代碼示例 :
- ① 模板函數(shù)定義 :
- ② 模板函數(shù)調(diào)用代碼示例 :
③ 執(zhí)行結(jié)果 :
函數(shù)模板 兩個(gè) int 類型相加 : 16函數(shù)模板 兩個(gè) float 類型相加 : 1.6類模板
1. 類模板示例 :
//類模板 template <class T , class E> class Template { public:T add(T t, E e) {return t + e;} };2. 類模板調(diào)用 :
//2. 類模板Template <float, int> templ;float result = templ.add(0.8f, 88);cout << "輸出模板類計(jì)算結(jié)果 : " << result << endl;3. 執(zhí)行結(jié)果 :
輸出模板類計(jì)算結(jié)果 : 88.8C++ 中創(chuàng)建了大量的模板類 , 如 queue , vector , list 等容器 , 都是模板類 ;
代碼示例
1. 函數(shù)模板與類模板定義 :
//函數(shù)模板 , 對應(yīng) 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. 模板編程調(diào)用 :
//V. 模板編程//1. 函數(shù)模板 //調(diào)用模板函數(shù) , 傳入兩個(gè) int 類型參數(shù)int number_int = add(8, 8);cout << " 函數(shù)模板 兩個(gè) int 類型相加 : " << number_int << endl;//調(diào)用模板函數(shù) , 傳入兩個(gè) float 類型參數(shù)float number_float = add(0.8f, 0.8f);cout << " 函數(shù)模板 兩個(gè) float 類型相加 : " << number_float << endl;//2. 類模板Template <float, int> templ;float result = templ.add(0.8f, 88);cout << "輸出模板類計(jì)算結(jié)果 : " << result << endl;3. 執(zhí)行結(jié)果 :
函數(shù)模板 兩個(gè) int 類型相加 : 16函數(shù)模板 兩個(gè) float 類型相加 : 1.6 輸出模板類計(jì)算結(jié)果 : 88.8總結(jié)
以上是生活随笔為你收集整理的【C++ 语言】面向对象 ( 模板编程 | 函数模板 | 类模板 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++ 语言】面向对象 ( 继承 |
- 下一篇: 【C++ 语言】vector 容器 (