以下是選擇排序算法測試代碼 int array[5]={3,5,6,4,9}; Println(array,5); Sort(array,5); Println(array,5); string s[5]={"c","c++","rust","golang","python"}; Println(s,5); Sort(s,5); Println(s,5); return 0;}輸出結果:vroot@txp-virtual-machine:/home/txp# ./a.outa= 5b= 3m= 6n= 4d= xiaopingt= Txp3,5,6,4,9,3,4,5,6,9,c,c++,rust,golang,python,c,c++,golang,python,rust,三、總結:函數模板是泛型編程......閱讀全文
以下是選擇排序算法測試代碼 int array[5]={3,5,6,4,9}; Println(array,5); Sort(array,5); Println(array,5); string s[5]={"c","c++",
一、函數模板的引出:1、c++中有幾種交換變量的方法:(1)定義宏代碼塊(2)定義函數代碼版本一:#include <iostream>#include <string>using namespace std;#define SWAP(t,a,b) do &
輸出結果:root@txp-virtual-machine:/home/txp# ./a.outa= 5b= 2m= 4n= 6d= Txpt= xiaoping注解:同樣實現了交換功能。2、兩種方法的優缺點:定義宏代碼塊-優點:代碼復用,適合所有的類型-缺點:編譯器不知道宏的存在,缺少類型檢查定義
輸出結果:root@txp-virtual-machine:/home/txp# g++ test.cpproot@txp-virtual-machine:/home/txp# ./a.outt1.i = 2, t1.j = 3, t1.p = 0x1528010t2.i = 2, t2.j = 3
輸出結果(沒有編譯通過)root@txp-virtual-machine:/home/txp# g++ test.cpptest.cpp: In function ‘int main()’:test.cpp:21:14: error: cannot convert ‘Test’ to ‘int’ i
(3)注意:在寫程序的時候,定義的類對象初始化時看屬于哪種類型的:Test t;//對應無參構造函數Test t(1);//對應有參構造函數Test t1;Test t2=t1;//對應拷貝構造函數比如下面我定義的類對象屬于無參構造函數(當然前提是你手寫了其他構造函數,雖然說編譯器會默認提供,但是既
輸出結果:root@txp-virtual-machine:/home/txp# g++ test.cpproot@txp-virtual-machine:/home/txp# ./a.outt1.i = 2, t1.j = 3, t1.p = 0xb0a010t2.i = 2, t2.j = 3,
一、深拷貝和淺拷貝構造函數總結:1、兩個特殊的構造函數:(1)無參構造函數:沒有參數的構造函數Class Test{ public: Test() { //這是一個無參構造函數  
3、靜態成員函數 vs 普通成員函:靜態成員函數普通成員函數所有對象共享YesYes隱含this指針NoYes訪問普通成員變量(函數)NoYes訪問靜態成員變量(函數)YesYes通過類名直接調用YesNo通過對象名直接調用YesYes4、版本代碼四:#include <std
3、轉換構造函數出廠:我們前面學習過構造函數,構造函數它可以定義不同類型的參數;但是我們今天這里所說的轉換構造函數的定義時這樣的:有且僅有一個參數參數是基本類型參數是其它類型接著我們對上面的普通數據類型轉換類類型的代碼進行分析:#include <iostream>#include <string>