第七章 7 3 2節練習

2021-06-26 10:26:35 字數 678 閱讀 9865

練習7.27

給你自己的screen類新增move、set和display函式,通過指向下面的**檢驗你的類是否正確。

screen myscreen(5, 5, 'x');

myscreen.move(4.0).set('#').display(cout);

cout << "\n";

myscreen.display(cout);

cout << "\n";

解答:這裡使用隨書待的screen,會發現兩次的結果是一樣的。

練習7.28

如果move、set和display函式的額返回值不是screen&而是screen,則在上乙個練習中將會發生什麼情況?

解答:第乙個顯示語句不會重新整理screen顯示

第二個顯示語句會重新整理screen顯示(和上一題一樣)

練習7.19

略練習7.30

通過this指標使用成員的做法雖然合法,但是有點多餘。討論顯式使用指標訪問成員的優缺點。

解答:一般使用到this,都是類的成員函式(非友元函式),可以對類中的成員隨意訪問。

其實使不使用this對編譯器來說沒什麼影響,主要是程式設計師在維護**上的代價。

優點是你通過this可以很容易通過ide的智慧型感知功能來定位類的成員,

缺點是你應該為此程式的所有成員的引用都用this來是**看起來一致。

第七章 7 2節練習

練習7.16 在類的定義中對於訪問說明符出現的位置的次數由限定嗎?如果有是什麼?什麼樣的成員應該定義在public說明符之後,什麼樣的成員應該定義在private說明之後?解答 對次數和位置沒有嚴格的限制。簡單來說,想讓外部訪問到的成員應該定義在public之後,不想讓外部訪問的到的成員應該定義在p...

第七章 7 5 3節練習

7.5.2節的練習,可以自行選擇練習。練習7.43 假定有乙個名為nodefault的類,它有乙個接受int的建構函式,但是沒有預設建構函式。定義類c,c有乙個nodefault型別的成員,定義c的預設建構函式。解答 struct nodefault int data struct c nodefa...

第七章 7 5 4節練習

練習7.47 說明接受乙個string引數sales data建構函式是否應該是explicit的,並解釋這樣做的優缺點。解答 應該宣告成explicit,這樣做能讓物件構造的更加明確。缺點可能就是,在構造物件的時候,不注意會出現莫名的錯誤。練習7.48 假定sales data的建構函式不是exp...