學號: 姓名: ____________ ____________ ** 請依序把答案寫在此紙這面然後背面. 30% (I) 之前提及C語言即使沒有 "struct", 我們一樣可以寫出所有程式, 但有 "struct" 可用, 我們可以把相關的資料用 struct 整合定義出 新的 user-defined data type, 使其更符合實際的意義, 例如 處理學生成績資料時可以把學生的相關資料整合成 Student 這新的 自訂型別來用, 這在做 sorting 時要把兩個(第i與第k個)學生資料 對調(swap)時 更能看出好處: 若不使用 struct, 須把許多 array 的第 i 與第 k 個元素對調; 若用了 struct Student, 則只要把一個 array 的兩元素對調! 如此不但程式簡潔且不會不小心有個 array 忘了對調! 現在考慮 C++ 的 class 以及 struct, (a)C++ 對 struct 的規定略有改變, 請說明之. (b) 即使沒有 class 仍可寫出所有程式, 請說明何以 C++ 要提供 class ? (註: 在此 struct 視同 class) (c) C++ 的 class 與 struct 幾乎相同, 只是語法規定有點差異, 請舉例說明其差異. 30% (II) 寫出 Object Oriented 的四大特性並大略說明之. 40% (III) Design and Implement a class MyQueue using an integer array and two integers. You should implement your queue as a circular queue. a.) Design 就是寫出該 class 的宣告部分, 通常寫成 .h header file. b.) Implementation就是寫出該class所有函數的定義, 通常寫成.cpp檔) c.) 解釋如何將之改寫為 template class? P.S. 這第3題考完後請參看 http://www.csie.nctu.edu.tw/~tsaiwn/introcs/OTHERS/queue/