C++ 速查手冊
9.6 - 存取函數與修改函數
當資料成員被宣告為 private 或 protected 的時候,他們就只能透過類別中的成員函數存取,如果要讓類別以外的地方設定或使用 private 或 protected 的資料成員,就得透過 public 的成員函數。
像這樣取得 private 或 protected 資料成員的函數叫做存取函數 (accessor) ,也是一般俗稱的 getter ,而設定 private 或 protected 資料成員的函數叫做修改函數 (mutator) ,也是一般俗稱的 setter ,舉例如下
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
set_a(pa);
set_b(pb);
}
int get_a() {
return a;
}
int get_b() {
return b;
}
void set_a(int pa) {
a = pa;
}
void set_b(int pb) {
b = pb;
}
private:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.get_a() + d.get_b() << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0906.cpp
功能:示範 C++ 的類別
作者:張凱慶*/
此例替兩個 private 資料成員分別設置存取函數與修改函數
int get_a() {
return a;
}
int get_b() {
return b;
}
void set_a(int pa) {
a = pa;
}
void set_b(int pb) {
b = pb;
}
建構函數中改成用修改函數設定 a 與 b
Demo(int pa, int pb) {
set_a(pa);
set_b(pb);
}
在類別定義以外的 main() 中,利用存取函數得到 a 與 b 的值
std::cout << d.get_a() + d.get_b() << std::endl;
編譯執行,結果如下
$ g++ u0906.cpp |
$ ./a.out |
22 |
$ |
相關教學影片