对cin coutt的迷惑
对cin coutt的疑惑
这是自定义的Sales_item类中的一个成员函数,形参in代替了cin的作用。因为是引用所以in只不过是cin的一个别称罢了。但是如果把引用去掉std::istream Sales_item::input(std::istream in)。就会出现编译错误。我想知道为什么in和cin都是istream累的一个对象,而且in是cin的一个拷贝,却不能实现同样的输入流的作用?
------解决方案--------------------
没有拷贝,C++中的流是不支持拷贝的。
istream& Sales_item::input(istream& in)
{
double price;
in>>isbn>>units_sold>>price;
//检验读入是否成功
if(in)
revenue=units_sold*price;
else
{//读入失败,将对象恢复为默认状态
units_sold=0;
revenue=0.0;
}
return in;
}
这是自定义的Sales_item类中的一个成员函数,形参in代替了cin的作用。因为是引用所以in只不过是cin的一个别称罢了。但是如果把引用去掉std::istream Sales_item::input(std::istream in)。就会出现编译错误。我想知道为什么in和cin都是istream累的一个对象,而且in是cin的一个拷贝,却不能实现同样的输入流的作用?
类
------解决方案--------------------
没有拷贝,C++中的流是不支持拷贝的。