2001 Spring C++ 程式設計課程程式作業

運算式計算程式 C++ 版本二
類別繼承架構之設計

程式作業一為計算運算式之程式, 在課堂上也討論過一個以串列實作堆疊來計算運算式的基本 C++ 版本, 如下圖所示該程式中運算子堆疊及運算元堆疊為獨立的物件:

然而兩個堆疊的基本運作方式是一樣的, 其介面規格如下:

因此邏輯幾乎一樣的程式碼會出現兩次, 這樣子設計出來的軟體很容易有維護上的問題。

我們在改良這個版本的時候, 可以採用繼承及群集/組合的技術來解決這樣的問題, 但是什麼情況下該用繼承, 什麼情況下該用群集/組合呢?

請說明下列幾種類別架構的設計, 各自的設計目標為何? 請以 C++ 語法寫下各組類別的定義? 何者滿足介面之要求? 還有沒有別種設計方法?



C++ 程式設計課程 首頁

製作日期: 03/11/2001 by 丁培毅 (Pei-yih Ting)
E-mail: pyting@cs.ntou.edu.tw TEL: 02 24622192x6615
海洋大學 理工學院 資訊科學系 Lagoon