
C++ 速查手冊
9.4 - private 成員
存取標籤 private 的成員只限類別中可以使用,例如
#include <iostream>
class Demo {
public:
Demo(int pa, int pb) {
a = pa;
b = pb;
}
int do_something() {
return a + b;
}
private:
int a;
int b;
};
int main() {
Demo d(12, 10);
std::cout << d.do_something() << std::endl;
return 0;
}
/* 《程式語言教學誌》的範例程式
http://kaiching.org/
檔名:u0904.cpp
功能:示範 C++ 的類別
作者:張凱慶*/
Demo 中宣告了兩個 private 資料成員
private:
int a;
int b;
另外在 public 的建構函數與 do_something() 使用其值
Demo d(12, 10);
std::cout << d.do_something() << std::endl;
編譯執行,結果如下
| $ g++ u0904.cpp |
| $ ./a.out |
| 22 |
| $ |
如果我們在 Demo 以外的地方存取 private 的資料成員,例如 main() 這樣寫
int main() {
Demo d(12, 10);
std::cout << d.a << std::endl;
return 0;
}
編譯時會發生如下的錯誤
| $ g++ u0904_1.cpp |
| u0904_1.cpp:21:20: error: 'a' is a private member of 'Demo' |
| std::cout << d.a |
| ^ |
| u0904_1.cpp:15:9: note: declared private here |
| int a; |
| ^ |
| 1 error generated. |
| $ |
因此要在類別以外的地方存取 private 的資料成員,就得透過 public 的成員函數。
另外, private 的資料成員不能被繼承。
相關教學影片
- 類別 ⇨ YouTube 頁面連結
- 封裝 ⇨ YouTube 頁面連結
