私は cin と cout object の宣言に関して疑問を持っています。私の理解によると、cin と cout の両方のオブジェクトがメインでアクセス可能であり、保護されるべきではありません。以下のコード スニペットでは、入力演算子と出力演算子の両方をオーバーロードし、この演算子のユーザー定義バージョンに新しい名前 (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;
}