Sales_data::Sales_data(const string &s, unsigned cnt, double price)
{
bookNo=s;
units_sold=cnt;
revenue=cnt*price;
} Sales_data(const std::string &s, unsigned n, double p):
bookNo(s),units_sold(n),revenue(p*n){}class ConstRef
{
public:
ConstRef(int ii);
private:
int i;
const int ci;
int &ri;
};
//错误的构造函数的初始化
ConstRef::ConstRef(int ii)
{
//赋值
i=ii; //正确
ci=ii; //错误:不能给const赋值
ri=i; //错误:ri没被初始化
}
//正确的打开方式
ConstRef::ConstRef(int ii):i(ii),ci(ii),ri(i)
{
}class X
{
int i; //先被初始化
int j; //后被初始化
public:
X(int val):j(val),i(j){}
};
<span style="font-weight: normal;">class Sales_data
{
//为Sales_data的非成员函数所做的友元声明
friend Sales_data add(const Sales_data&, const Sales_data&);
friend std::istream &read(std::istream&, Sales_data&);
friend std::ostream &print(std::ostream&, const Sales_data&);
public: //增加了访问说明符
//构造函数
Sales_data() = default;
Sales_data(const std::string &s, unsigned n, double p):
bookNo(s),units_sold(n),revenue(p*n){}
Sales_data(const std::string s="11"):bookNo(s){cout<<"xxxx"<<endl;}
Sales_data(std::istream &is){read(is, *this);}
/*
Sales_data::Sales_data(const string &s, unsigned cnt, double price)
{
bookNo=s;
units_sold=cnt;
revenue=cnt*price;
}*/
//普通成员函数
std::string isbn()const {return bookNo;}
Sales_data &combine(const Sales_data&);
private:
double avg_price() const
{
return units_sold ? revenue/units_sold : 0;
}
std::string bookNo;
unsigned units_sold=0;
double revenue=0.0;
};
//Sales_data接口的非成员组成部分的声明
Sales_data add(const Sales_data&, const Sales_data&);
std::istream &read(std::istream&, Sales_data&);
std::ostream &print(std::ostream&, const Sales_data&);
int main()
{
Sales_data next();
Sales_data last("9-999-99999-9");
return 0;
}</span><span style="font-weight: normal; ">Sales_data(const std::string s="11"):bookNo(s){cout<<"xxxx"<<endl;}</span> //构造函数
Sales_data(const std::string &s, unsigned n, double p):
bookNo(s),units_sold(n),revenue(p*n){}
//其余构造函数都委托给另外构造函数
Sales_date():Sales_data("",0,0) {}
Sales_data(std::string s):Sales_data(s,0,0) {}
Seles_data(std::istream &is):Sales_data() {read(is, *this);}class Debug
{
public:
constexpr Debug(bool b=true):hw(b),io(b),other(b) {}
constexpr Debug(bool h, bool i, bool o):hw(h),io(i),other(o) {}
constexpr bool any() {return hw || io || other;}
void set_io(bool b) {io=b;}
void set_hw(bool b) {hw=b;}
void set_other(bool b) {other=b;}
private:
bool hw; //硬件错误
bool io; //IO错误
bool other; //其他错误
};
智能家居引热议 那些智能家电APP你知道吗?,布布扣,bubuko.com
原文地址:http://blog.csdn.net/mummscs/article/details/28392813