我对 cin 和 cout object 的声明有疑问。根据我的理解 cin 和 cout 两个对象都可以在 main 中访问,那么它们不应该被保护。在下面的代码片段中,我已经重载了输入和输出运算符,同时给这个运算符的用户定义版本提供了新名称(ofstream obj),我收到错误,例如 obj 受保护,无法在此处访问。任何人都可以建议。
#include<iostream>
using namespace std;
class overload
{
public:
int var_a;
overload (int fun_a=10): var_a(fun_a) {}
friend ostream operator >> (ostream &output, overload &);
friend istream operator << (istream &input, overload &);
};
ostream &operator <<( ostream &output, overload &s1)
{
output<<"value of object output:"<<s1.var_a<<endl;
return output;
}
istream &operator >>( istream &input, overload &s1)
{
input >> s1.var_a;
return input;
}
int main()
{
overload s1,s2;
//ostream obj;
//obj<<"enter the value of object"
cout<<"enter the value of object";
cin>>s2;
cout<<s2;
return 1;
}