目錄完整**2
#includeusing namespace std;
class sale_data
sale_data(string s, unsigned n, double p) :
bookno(s), units_sold(n), revenue(n*p) {}
sale_data(istream &);
string ibsn() const
sale_data& combine(sale_data& );
private :
double **g_price() const;
//資料成員
string bookno;
unsigned units_sold = 0;
double revenue = 0.0;
};
在c++語言中,我們使用訪問說明符(access specifiers)加強類的封裝性
使用class和struct定義類唯一的區別就是預設的訪問許可權。類的結構圖
在類的外部,非成員的介面函式無法訪問 private 的函式成員,而它又是介面函式,需要像其他介面函式一樣能夠訪問類的非公有成員,那麼如何解決此衝突呢?在類中宣告友元
類可以允許其他類或者函式訪問它的非公有成員,方法是令其他類或者函式成為它的友元
class sale_data
sale_data(string s, unsigned n, double p) :
bookno(s), units_sold(n), revenue(n*p) {}
sale_data(istream &);
//關於sale_data物件的操作函式
string ibsn() const
sale_data& combine(sale_data& );
private :
double **g_price() const;
//資料成員
string bookno;
unsigned units_sold = 0;
double revenue = 0.0;
};//非成員函式介面
istream &read (istream &, sale_data &);
ostream &print(ostream &, sale_data &);
//外部建構函式
sale_data::sale_data(istream &is)
istream &read(istream &is, sale_data &item)
ostream &print(ostream &os, sale_data &item)
//外部成員函式
sale_data& sale_data::combine(constsale_data& trans)
double sale_data::**g_price() const
int main()
訪問控制與封裝
使用訪問說明符能夠加強類的封裝性 一般的,建構函式和部分作為介面的成員函式定義緊跟在public說明符之後。資料成員和作為實現部分的成員函式緊跟在private之後。乙個類可以包含0個或多個訪問說明符,對於某個說明符出現多少次也沒有限制。每個訪問說明符指定接下來的成員訪問級別,其有效範圍直到出現下乙...
訪問控制與封裝
在c 語言中,我們使用訪問說明符加強類的封裝性 定義在public說明符之後的成員在整個程式內可被訪問,public成員定義類的介面。定義在private說明符之後的成員可以被類的成員函式訪問,但是不能被使用該類的 訪問,private部分封裝 即隱藏了 類的實現細節。作為介面的一部分,建構函式和部...
C 中的訪問控制與封裝
訪問控制與封裝 使用訪問說明符來加強類的封裝性。public 和private 使用class或struct關鍵字 二者的唯一區別就是預設訪問許可權不太一樣 struct的預設是public,class預設是private 友元 類可以允許其他類或函式訪問它的非公有成員,方法是通過令其它類或函式成為...