11-1 規劃我們的 Vec 類別

一、Vec 類別需要什麼?

在這個章節裡,我們嘗試自己建立一個簡單版的 vector,一個叫做 Vec 的類別。

我們至少需要以下三項屬性:

  1. data: 指向一塊儲存資料的記憶體空間
  2. size: 記錄目前 Vec 裡的元素數量
  3. capacity: 記錄目前 Vec 裡己向作業系統要求配置的空間大小

接下來考慮需要對外公開的成員函數。

  1. Vec(): 建構函數
  2. ~Vec(): 解構函數
  3. size(): 回傳目前 Vec 裡有幾個元素
  4. capacity(): 回傳目前 Vec 配置的記憶體大小最多可放幾個元素
  5. push_back(val): 將 val 附加在 Vec 的尾端
  6. pop_back(): 將 Vec 尾端的元素移除

現在我們可以先完成這個類別的原型宣告如下:

[vec.h]

class Vec {
private:
    int *m_data;
    int m_size;
    int m_capacity;
public:
    Vec();
    ~Vec();
    int size();
    int capacity();
    void push_back(int val);
    void pop_back();
};

在成員函數的部分,我們使用 m_ 開頭的名稱,一方面用來提醒自己這是個 data member。一方面也是因為 data member 和 member function 不能用相同的名稱,我們不能有一個叫做 size 的 data member,同時又有一個叫做 size 的 member function。


Revision #2
Created 7 June 2026 23:47:47 by huihui
Updated 8 June 2026 00:12:40 by huihui