第十五章 15 2 1節練習

2021-06-25 18:46:16 字數 629 閱讀 1096

終於到15章了,物件導向程式設計

之前一直對這種設計方式沒有什麼概念,這裡把概念在這裡再提一下吧。

物件導向程式設計(object-oriented programming)的核心思想是資料抽象、繼承和動態繫結。通過使用資料抽象,我們可以將類的介面與實現分離(見第七章);使用繼承,可以定義相似的型別並對其相似關係建模;使用動態繫結,可以在一定成都上忽略相似型別的區別,而以同意的方式使用它們的物件。

練習15.1

什麼是虛成員?

解答:這裡的虛成員,指的是虛成員函式。成員變數並沒有可虛的。

虛函式可以構成虛成員函式,所以這裡只要明確虛函式的定義即可。

虛函式是基類希望其他派生類進行覆蓋的函式。

練習15.2

protected訪問說明與private有何區別?

解答:protected這個修飾符主要還是為了派生類而設定的。

對於直接訪問物件成員的方式而言,protected和private的作用是一樣的。

但當對與派生類要訪問基類時,基類的private部分是派生類無法訪問的,而protected部分派生類可以進行訪問。

練習15.3

定義你自己的quote類和print_total函式。

解答:這個可以參考書中的實現。

第十五章 15 2 3節練習

練習15.8 給出靜態型別和動態型別的定義。解答 這裡的靜態型別和動態型別是指在繼承關係中的兩種表示式或變數。引用 表示式的靜態型別在編譯時總是已知的,它是變數宣告時的型別或表示式生成的型別 引用 動態型別則是變數或表示式表示的記憶體中的物件的型別。動態型別知道執行時才可知。練習15.9 在什麼情況...

第十五章 15 3節練習

練習15.11 為你的quote類體系新增乙個名為debug的虛函式,令其分別顯示是每個類的資料成員。解答 void quote debug void bulk quote debug 練習15.12 有必要將乙個成員函式同事宣告成override和final嗎?為什麼?解答 相應情況下應該是有必要...

第十五章 15 9 3節練習

練習15.34 針對圖15.3 第565頁 構建的表示式 a 列舉出在處理表示式過程中所有建構函式。b 列舉出cout q所呼叫的rep。c 列舉出q.eval 所呼叫的eval。解答 a query q query fiery query bird query wind 可以將這個表示式進行化簡 ...