C++中的泛型编程
文章目錄
- 1 C++中的泛型編程
- 1.1 引入
- 1.2 泛型編程
1 C++中的泛型編程
1.1 引入
發散性問題:C++中有幾種交換變量的方法?
交換變量的方法:定義宏代碼塊和定義函數。
示例代碼如下:
#include <iostream> #include <string>using namespace std;#define SWAP(t, a, b) \ do \ { \t c = a; \a = b; \b = c; \ }while(0)void Swap(int& a, int& b) {int c = a;a = b;b = c; }void Swap(double& a, double& b) {double c = a;a = b;b = c; }void Swap(string& a, string& b) {string c = a;a = b;b = c; }int main() {int a = 0;int b = 1;Swap(a, b);cout << "a = " << a << endl;cout << "b = " << b << endl;double m = 2;double n = 3;Swap(m, n);cout << "m = " << m << endl;cout << "n = " << n << endl;string d = "Delphi";string t = "Tang";Swap(d, t);cout << "d = " << d << endl;cout << "t = " << t << endl;return 0; }不管是定義宏代碼塊還是定義函數,都存在優缺點,如下。
定義宏代碼塊:
- 優點:代碼復用,適合所有的類型。
- 缺點:編譯器不知道宏的存在,缺少類型檢查。
定義函數:
- 優點:真正的函數調用,編譯器對類型進行檢查。
- 缺點:根據類型重復定義函數,無法代碼復用。
C++中有沒有解決方案集合兩種方法的優點?泛型編程可以。
1.2 泛型編程
泛型編程的概念:
- 不考慮具體數據類型的編碼方式。
C++中的泛型編程包括兩部分:
- 函數模板。
- 類模板。
參考資料:
總結
- 上一篇: 交行青年卡怎么样 办理条件额度解读
- 下一篇: C++中的函数模板