65,209
社区成员
发帖
与我相关
我的任务
分享class Sales_data {
friend Sales_data add(const Sales_data&, const Sales_data&);
friend std::ostream &print(std::ostream&, const Sales_data&);
friend std::istream &read(std::istream&, Sales_data&);
public:
// constructors
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 &);
// operations on Sales_data objects
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;
};Sales_data&
Sales_data::combine(const Sales_data &rhs)
{
units_sold += rhs.units_sold; // add the members of rhs into
revenue += rhs.revenue; // the members of ``this'' object
return *this; // return the object on which the function was called
}
int main()
{
Sales_data data1, data2;
if (read(cin, data1) && read(cin, data2)) { // read the transactions
if (data1.isbn() == data2.isbn()) { // check isbns
data1.combine(data2); // add the transactions
print(cout, data1); // print the results
cout << endl; // followed by a newline
}
} else
cerr << "Input failed!" << endl;
return 0;
}
void combine(const Sales_data&);
然后把定义里的return *this 去掉[/quote]
如果从现有代码上看 在语法层面是可以的,但是我不认为这是一个好做法[/quote]
,嗯,记住了,谢谢void combine(const Sales_data&);
然后把定义里的return *this 去掉[/quote]
如果从现有代码上看 在语法层面是可以的,但是我不认为这是一个好做法void combine(const Sales_data&);
然后把定义里的return *this 去掉[/quote][/quote]谢谢void combine(const Sales_data&);
然后把定义里的return *this 去掉[/quote]void combine(const Sales_data&);
然后把定义里的return *this 去掉
那怎么了 有返回值 但是我不用 编译器还能削我奥?