构造函数出错。解决办法

构造函数出错。
#include <iostream>
#include<string>
using namespace std;


class sales_item
{
public:
sales_item(const string &book="fuck!"):isbn(book),units_sold(0),revenue(0.0)
{


}
sales_item(istream &is=cin)
{


}
void print()
{
std::cout<<isbn<<endl;
cout<<units_sold<<endl;
cout<<revenue<<endl;
}
private:
int units_sold;
double revenue;
string isbn;
};


int main()
{
sales_item s1(cin);
s1.print();
return 0;
}
这个我想实现的功能是,通过cin读入字符串,为何得不到我想要的结果,打印出的是一组垃圾数字。

------解决方案--------------------
因为你在构造函数里没有用cin获取输入,应该这样:

sales_item(istream &is=cin)
{
cin >> isbn >> units_sold >> revenue;
}


输入以空格隔开,例如:

programing 12 6