【发布时间】:2018-12-14 14:11:17
【问题描述】:
这里有什么问题。它没有按预期工作。
我希望
#include<iostream>
using namespace std;
class a
{
private:
string name;
int age;
unsigned long int salary;
public:
friend ostream& operator << (ostream& ,a );
friend istream& operator << (istream& ,a );
};
ostream& operator << (ostream& dout,a a1){
cout<<"Name = "<< a1.name<<"Age = "<<a1.age<<"Salary = "<<a1.salary<<end;
return dout;
}
istream& operator << (istream& din,a& a1){
cout<<"Enter Your Name , Age , Salary .....Press Enter To Seperate New Value"<<end;
cin>>a1.name>>a1.age>>a1.salary;
}
main(int argc, char const *argv[])
{
a a1;
cin<<a1;
cout<<a1;
return 0;
}
错误太长。 ->
【问题讨论】:
-
注意箭头向左(
<<)输出,向右(>>)输入……看看你写的函数。 -
错误来自
end,你的意思可能是endl。但是……嗯?你想在这里实现什么?你绝对应该重新考虑你的运算符重载。 -
谢谢朋友们。我犯了非常愚蠢的错误。 endl,函数声明中的参数,返回类型。现在唯一的问题是朋友功能无法访问私人会员。 @Yksisarvinen
-
您的操作员应该读写各自的流参数,而不是
cin和cout。他们通常也不应该与用户互动。 -
@molbdnilo 我创建了这个,所以它不会让用户混淆他/她正在使用带有前置或非前置数据类型的 cin/cout。
标签: c++ overloading operator-keyword cin cout