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 頁面連結