不過,有時我們最好選擇集合關係來替代遺傳的運用。先舉一例。串列結構
(list)是資料結構中一種儲存資料的基本方法,而堆疊(stack)是一種 FILO (
first in ,last out ) 先進後出的結構,關於這方面請讀者自行參考與資料結
構有關的書籍。串列有些基本的運作方法,例如說:增加節點,刪除節點等等。
現在我們要實作堆疊,而堆疊有自己惟一的存取方法也就是它的運作──推入
(push)和彈出(pop)。我們可以採取兩套策略來獲得「堆疊」類別。第一:由串
列遺傳出新的「堆疊」類別,但注意!那些刪除節點之類的運作(operation)也
會被遺傳下來,然而對堆疊來說,不但不需要這些多餘的運作,也不能要,因為
可能意外地刪除節點。因此建議採第二種策略:把串列和堆疊以集合
(aggregation)連起來,就是說把串列變成堆疊的一部分。如圖1.8所示。
預設參數值是C++ 新增加的功能。前面曾提過單色與彩色繪圖系統中畫點運
作的一致化時所作的改變。例如說:point(int x, int y, int color=1)這個繪
圖函數的簽名。假如程式拿呼叫單色繪點的方法來呼叫這個函數,它可能只傳入
座標值而已,但它可能不知道系統正處於彩色模示下,此時顏色color參數的預
設值便派上用場了。此外,有預設值的參數最好被放在參數列的最後頭,這樣預
設參數值才能發揮正確的效用。