[類別] 公有、私有成員

private關鍵字以及public關鍵字
描述類別成員的存取控制
public關鍵字:
任何使用特定物件的程式都可以直接存取,而且程式只能利用public成員函數存取private成員,可以用來建立使用者介面
 
private關鍵字:
只能用成員函數或友誼函數存取該內容

存取控制
使用者利用介面與程式溝通
取得或者是輸入需要的資料
將資料隔絕
避免使用者直接存取的方式稱為「資料隱藏」
也可以稱為「封裝」
利用成員函數的控制
確保資料的完整性
publicprivate ?
不論資料成員或者是成員函數
都可以放在類別的public區或private
由於OOP主要的特性是隱藏資料
所以資料成員通常放在private
構成介面的成員函數需放在public
否則程式無法呼叫這些函數
在類別宣告中
不一定要用關鍵字private
因為這是類別的預設存取控制
不過
我們仍會特別寫出private

強調資料的隱藏性

Ex:

[code language=”cpp”]
#include <iostream>
using namespace std;

class time //類別宣告
{
public: //公<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>有函數宣告,可供程式呼叫
void input_hour(int);
void input_minute(int);
void input_second(double);
void show();

private: //私有成員宣告
int hour; //程式只能由公有函數或友誼函數存取
int minute;
double second;

};

//成員函數定義
void time::input_hour(int n){
hour=n;
}

void time::input_minute(int n){
minute=n;
}
void time::input_second(double n){
second=n;
}
void time::show(){

cout << hour << " : " << minute << " : " << second << endl;

}

int main(){

time t1; //建立物件

//呼叫成員函數,為時間設值
t1.input_hour(12);
t1.input_minute(12);
t1.input_second(12.121212);

//呼叫成員函數,印出時間
t1.show();

}
[/code]

 

 

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料