C++公用介面與私有實作的分離
C++通過類來實作封裝性,把資料和與這些資料有關的操作封裝在一個類中,或 者說,類的作用是把資料和演算法封裝在用戶宣告的抽象資料型別中,在宣告了一個類以后,用戶主要是通過呼叫公用的成員函式來實作類提供的功能
C++公用成員函式是用戶使用類的公用介面或者說是類的對外介面,當然并不一定要把所有成員函式都指定為public的,但這時這些成員函式就不是公用介面了,
C++類外雖然不能直接訪問私有資料成員,但可以通過呼叫公用成員函式來參考甚至修改私有資料成員,用戶可以呼叫公用成員函式來實作某些功能,而這些功能是在宣告類時已指定的,用戶可以使用它們 而不應改變它們,
實際上用戶往往并不關心這些功 能是如何實作的細節,而只需知道呼叫哪個函式會 得到什么結果,能實作什么功能即可,
C++通過成員函式對資料成員進行操作稱為類的實作, 為了防止用戶任意修改公用成員函式,改變對資料進行的操作,往往不讓用戶看到公用成員函式的源代碼,顯然更不能修改它,用戶只能接觸到公用成員函式的目標代碼,
類中被操作的資料是私有的,實作的細節對用戶是隱蔽的,這種實作稱為私有實作,類的公用介面與私有實作的分離形成了資訊隱蔽,
如果想修改或擴充類的功能,只需修改本類中有關的資料成員和與它有關的成員函式,程式中類外的部分可以不必修改,
如果在編譯時發現類中的資料讀寫有錯,不必檢查整個程式,只需檢查本類中訪問這些資料的少數成員函式,
C++類的成員函式在面向物件程式理論中被稱為方法,方法是指對資料的操作,一個方法對應一種操作,只有被宣告為公用的方法,才能被物件外界所激活,外界是通過發命令來呼叫有關方法的,
案例:C++使用類,
#include<iostream>//預處理
using namespace std;//命名空間
class Time
{
public: //宣告以下是公用的
int day;
int hour;
int minute;
};
int main()//主函式
{
Time time1;//定義time1為Time類物件
cout<<"輸入天:"<<endl;
cin>>time1.day;
cout<<"輸入小時:"<<endl;
cin>>time1.hour;
cout<<"輸入分鐘:"<<endl;
cin>>time1.minute;
cout<<"寫這篇文章是"<<time1.day<<"號,";
cout<<time1.hour<<"點:";
cout<<time1.minute<<"分"<<endl;
return 0; //函式回傳值為0;
}
編譯運行結果:
輸入天:
21
輸入小時:
20
輸入分鐘:
38
寫這篇文章是21號,20點:38分
--------------------------------
Process exited after 9.871 seconds with return value 0
請按任意鍵繼續. . .
以上,如果你看了覺得對你有所幫助,就給小林點個贊叭,這樣小林也有更新下去的動力,跪謝各位父老鄉親啦~
C++類的封裝
更多案例可以go公眾號:C語言入門到精通
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252049.html
標籤:其他
上一篇:Deep Video Super-Resolution using HR Optical Flow Estimation | 視頻超分重建 | 測驗簡記 |
下一篇:146-洗掉鏈表倒數第N個節點
