C++ Primer 5th笔记(chap 13 拷贝控制) 实例1测试和结果分析
1. 測試代碼和結果
string s1("contents1");string s2("contents2");string s3("contents3");string s4("contents4");string s5("contents5");string s6("contents6");// all new messages, no copies yetMessage m1(s1);Message m2(s2);Message m3(s3);Message m4(s4);Message m5(s5);Message m6(s6);Folder f1;Folder f2;m1.save(f1); m3.save(f1); m5.save(f1);m1.save(f2);m2.save(f2); m4.save(f2);m6.save(f2);/* 輸出為
 Message:
 contents1
 Appears in 2 Folders
 Folder contains 4 messages
 Message 1:
 contents1
 Message 2:
 contents2
 Message 3:
 contents4
 Message 4:
 contents6
 */
/* f2增加了c1, c2, c4, c6, 輸出為
 Message:
 contents1
 Appears in 2 Folders
 Folder contains 8 messages
 Message 1:
 contents1
 Message 2:
 contents2
 Message 3:
 contents4
 Message 4:
 contents6
 Message 5:
 contents1
 Message 6:
 contents2
 Message 7:
 contents4
 Message 8:
 contents6
 */
 m1.debug_print();
 f2.debug_print();
/* m1 的內容變為了m5的,m2,m4,m6每次賦值后,f2 只剩下c1,c2,c4,c6
 Message:
 contents5
 Appears in 1 Folders
 Folder contains 4 messages
 Message 1:
 contents1
 Message 2:
 contents2
 Message 3:
 contents4
 Message 4:
 contents6
 */
 m1.debug_print();
 f2.debug_print();
/* m1自身賦值,變為0了。f2不變
 Message:
 contents5
 Appears in 0 Folders
 Folder contains 4 messages
 Message 1:
 contents1
 Message 2:
 contents2
 Message 3:
 contents4
 Message 4:
 contents6
 */
 m1.debug_print();
 f2.debug_print();
其余結果如下:
capacity: 0 capacity: 1 capacity: 2 capacity: 3 capacity: 4 capacity: 6capacity: 0 capacity: 1 capacity: 2 capacity: 3 capacity: 4 capacity: 6 //這里雖然結果是6,但是size是6 capacity: 6【參考】
 [1] 代碼copyControl.h
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 13 拷贝控制) 实例1测试和结果分析的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: C++ Primer 5th笔记(cha
 - 下一篇: C++ Primer 5th笔记(cha