构造函数出错。解决办法
构造函数出错。
#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获取输入,应该这样:
输入以空格隔开,例如:
#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