close
利用 stack 來解決標準括號式的問題,於檔案 stack.h 與 stack.c 已具有 C++ class 中資料封包的性質,以 class 的方式重新整理 stack.h 與 stack.c 成為新的檔案 stack.cpp 其內容為
#define MAXSIZE 100 class CStack { public: CStack( ) { tos=0; } ~CStack( ) { } int isEmpty( ) { return tos == 0; } int isFull( ) { return tos == MAXSIZE; } void push(char c) { s[tos++]=c; } char pop( ) { return s[--tos]; } private: char s[MAXSIZE]; int tos; }
說明:
- 新的 stack.cpp 檔 (注意其副檔名已經改成為 .cpp,其發音為 C plus plus,即 C++ ) 含一類別 (class) 的宣告,該 class 的名稱為 CStack。
- class CStack 含有二個 private 的 data members,即 s 與 tos。
- class CStack 含有四個 member functions,即 isEmpty()、 isFull()、 push() 及 pop()。
- class CStack 含有一個 建構函數 (constructor) CStack(), 該函數 如同第 10 章中的 initializeStack() 函數。
任意一個 class 都有一個 預設 (default) 建構函數,即使 不將它 標明出來, 它仍然 存在。 一個 class 可能 含有 一個 或 多個建構函數。 如有多個函數 其名皆相同, 則稱之為 overloaded function, 將於第 3 節討論。 - class CStack 含有一個 解構函數 (destructor) ~CStack()。 於 destructor 中 可用來 釋放 一些 動態記憶体 或處理 其他一些事。
任意一個 class 都有一個 預設 (default) 解構函數,一個 class 也可能 含有 一個 或 多個 解構函數。
全站熱搜
留言列表