玩命加载中 . . .

7.2-访问控制与封装


7.2 访问控制与封装

class Sales_data {
public:
    Sales_data() = default;
    Sales_data(const string& s): bookNo(s) {}
    Sales_data(const string& s, unsigned n, double p): 
        bookNo(s), units_sold(n), revenus(p * n) {}
    Sales_data(istream&);
    string isbn() const { return bookNo; }
    Sales_data& combine(const Sales_data&);
    double avg_price() const;
private:
    string bookNo;
    unsigned units_sold = 0;
    double revenus = 0.0;
};
  • 如果我们使用struct关键字,则定义在第一个访问说明符之前的成员是public
  • 如果使用class关键字,则这些成员是private

7.2.1 友元

类可以允许其他类或者函数访问它的非公有成员,方法是令其他类或者函数成为友元

class Sales_data {
friend Sales_data add(const Sales_data&, const Sales_data&);
friend istream& read(istream&, Sales_data&);
friend ostream& print(ostream&, const Sales_data&);
};

友元声明只能出现在类定义的内部,但是在类内出现的具体位置不限
一般最好在类开始或结束的位置集中声明友元


文章作者: kunpeng
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kunpeng !
  目录