C++之类-1
2019-02-01 本文已影响0人
Oneshot_fea8
#include<iostream>
#include<string>
using namespace std;
class Sales_items
{
public:
Sales_items(std::string &book, unsigned units, double amount)
:isbn(book), units_sold(units), revenue(amount)
{}
//书的平均价格
double avg_price() const
{
if (units_sold)
return revenue / units_sold;
else
return 0;
}
//判断卖的是否是同样的书
bool same_isbn(const Sales_items &rhs) const
{
return isbn == rhs.isbn;
}
void add(const Sales_items &rhs)
{
units_sold += rhs.units_sold;
revenue += rhs.revenue;
}
private:
std::string isbn; //书号
unsigned units_sold;//销售数量
double revenue; //总金额
};
class Person
{
//成员
public:
/*Person(const std::string &nm,const std::string &addr)
{
name = nm;
address = addr;
}*/
//另外一种方法是利用构造函数的初始化列表对函数成员进行赋值,更加简洁
Person(const std::string &nm, const std::string &addr) :name(nm), address(addr)
{
}
std::string getName() const//定义成const的原因是该函数只进行读操作,而不改变函数的成员,这样更安全
{
//用公有的函数成员操作私有的数据成员
return name;
}
std::string getAdress() const
{
return address;
}
private:
std::string name;
std::string address;
};
int main()
{
Person a("zhangfei","garden street");
//cout << a.name << "," << a.address;
cout << a.getName() << "," << a.getAdress() << endl;
Sales_items x(string("0-399-82477-1"), 2, 20.00);
Sales_items y(string("0-399-82477-1"), 6, 48.00);
cout << x.avg_price() << endl;
cout << y.avg_price() << endl;
if (x.same_isbn(y))
x.add(y);
cout << "两个销售单的平均价格为:"<<x.avg_price() << endl;
cout << y.avg_price() << endl;
cout << endl << endl;
cout << "Hello, class!" << endl;
return 0;
}