封裝

成員函式的常見用途是使用訪問器 (通常稱為 getter)和 mutator (通常稱為 setter) 進行封裝,而不是直接訪問欄位。

class Encapsulator {
    int encapsulated;

  public:
    int  get_encapsulated() const { return encapsulated; }
    void set_encapsulated(int e)  { encapsulated = e; }

    void some_func() {
        do_something_with(encapsulated);
    }
};

在類中,encapsulated 可以被任何非靜態成員函式自由訪問; 在課堂之外,訪問它是由成員函式管理,使用 get_encapsulated() 讀取它,set_encapsulated() 修改它。這可以防止對變數的無意修改,因為使用單獨的函式來讀取和寫入變數。 [關於 getter 和 setter 是否提供或打破封裝有很多討論,對這兩種說法都有很好的論據; 這種激烈的爭論超出了這個例子的範圍。]