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;
}

說明:

  1. 新的 stack.cpp 檔 (注意其副檔名已經改成為 .cpp,其發音為 C plus plus,即 C++ ) 含一類別 (class) 的宣告,該 class 的名稱為 CStack。
  2. class CStack 含有二個 private 的 data members,即 s 與 tos。
  3. class CStack 含有四個 member functions,即 isEmpty()、 isFull()、 push() 及 pop()。
  4. class CStack 含有一個 建構函數 (constructor) CStack(), 該函數 如同第 10 章中的 initializeStack() 函數。
    任意一個 class 都有一個 預設 (default) 建構函數,即使 不將它 標明出來, 它仍然 存在。 一個 class 可能 含有 一個 或 多個建構函數。 如有多個函數 其名皆相同, 則稱之為 overloaded function, 將於第 3 節討論。
  5. class CStack 含有一個 解構函數 (destructor) ~CStack()。 於 destructor 中 可用來 釋放 一些 動態記憶体 或處理 其他一些事。
    任意一個 class 都有一個 預設 (default) 解構函數,一個 class 也可能 含有 一個 或 多個 解構函數。


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 angel9210104 的頭像
    angel9210104

    心想事成的秘密

    angel9210104 發表在 痞客邦 留言(0) 人氣()