来自C++primer5 的struct和class定义类的区别

类可以在它的第一个访问说明符之前定义成员,对这种成员的访问权限依赖于类定义的方式。如果我们使用struct关键字,则定义在第一个访问说明符之前的成员是public的;相反,如果我们使用class关键字,则这些成员是private的

// Created by simp on 2020/10/15.
//
//使用class和struct定义类唯一的区别就是默认的访问权限
#include <iostream>
struct Sales_data{//默认public
    Sales_data()=default;
    Sales_data(const std::string &s):bookNo(s){}
    Sales_data(const std::string &s,unsigned n,double p):bookNo(s),units_sold(n),revenue(p*n){}
    Sales_data(std::istream&);
    std::string isbn()const{return bookNo;}
    Sales_data& combine(const Sales_data&);
    double avg_price()const;

private:
    std::string bookNo;
    unsigned units_sold=0;
    double revenue=0.0;
};
class Sales_data1{//默认private
    Sales_data1()=default;
    Sales_data1(const std::string &s):bookNo(s){}
    Sales_data1(const std::string &s,unsigned n,double p):bookNo(s),units_sold(n),revenue(p*n){}
    Sales_data1(std::istream&);
    std::string isbn()const{return bookNo;}
    Sales_data& combine(const Sales_data&);
    double avg_price()const;

public:
    std::string bookNo;
    unsigned units_sold=0;
    double revenue=0.0;
};

int main(){

    return 0;
}

posted @ 2020-10-15 15:36  simp00  阅读(115)  评论(0编辑  收藏  举报