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