運行結果: 請輸入一個整數和一個字符: 4 G Node constructor is running... Linklist constructor is running... Node constructor is running... Node constructor is running... Node constructor is running... After Insert 4 G 3 F 2 B 1 C After Delete 4 G 3 F 1 C Linklist cloner running... This is Linklist b 4 G 3 F 1 C After Destroy 4 G 根據程序運行的結果,我們發現輸出鏈表b的內容的確和鏈表a一樣了,并且我們可以得到三個結論: (1) 拷貝構造函數可以讀出相同類對象的私有成員數據; (2) 拷貝構造函數的實質是把參數的成員數據一一復制到新的對象中; (3) 拷貝構造函數也是構造函數的一種重載。
運行結果: 請輸入一個整數和一個字符: 4 G Node constructor is running... Linklist constructor is running... Node constructor is running... Node constructor is running... Node constructor is running... After Insert 4 G 3 F 2 B 1 C After Delete 4 G 3 F 1 C Linklist Deep cloner running... Node constructor is running... Node constructor is running... This is Linklist b 4 G 3 F 1 C After Destroy 4 G This is Linklist b 4 G 3 F 1 C 我們看到,現在即使運行a.Destroy()之后,鏈表b里面的數據仍然能夠正常顯示。這是因為深拷貝構造函數是真正意義上的復制了鏈表a,并且使得鏈表a和鏈表b各自獨立,互不干擾。這才是自定義拷貝構造函數存在的重要意義。