私のクラス定義では、次のフレンド関数があります。
friend ostream& operator << (ostream& out, const Person& p1);
friend istream& operator >> (ostream& out Person& p1);
私の実装ファイルでは:
ostream& operator << (ostream& out, const Person& p1)
{
out<< p1.age; //this is a private variable
}
istream& operator << (istream& in, Person& p1)
{
in >> p1.age; //this is a private variable
}
しかし、これをコンパイルすると、「ostream」がタイプフレンドの名前を付けていないというエラーが表示されます ostream& operator(ostream& out, const Person& p1).. istream についても同じです。これらはフレンド関数であるため、プライベート変数、つまり年齢にアクセスできますが、問題は何ですか?