65,189
社区成员




//头文件
struct Sales_data {
Sales_data() = default;
std::string isbn() const{return bookNo;}
double avg_price() const;
std::string bookNo;
unsigned units_sold = 0;
double revenue = 0.0;
};
std::ostream &print(std::ostream&,const Sales_data&);
//cpp文件
std::ostream &print(std::ostream &os,const Sales_data &item) {
os << item.isbn() <<" " << item.units_sold << " "
<< item.revenue << " " << item.avg_price();
return os;
}
//伪代码
Sales_data::isbn(&item) {
this=&item;
return this->bookNo;
}
因为此处item是个常量引用,this默认是个顶层const而非底层,所以这里不能直接把item的地址赋给this。而如果isbn是const的话,this就是const Sales_data *const类型的,此时就可以完成isbn的调用。
不知道我理解的对不对