私がそのようなクラスを持っているとしましょう:
class Ingredient
{
public:
friend istream& operator>>(istream& in, Ingredient& target);
friend ostream& operator<<(ostream& out, Ingredient& data);
private:
Measure myMeas;
MyString myIng;
};
このオーバーロードされたフレンド関数では、次の値を設定しようとしています。myIng
istream& operator>>(istream& in, Ingredient& target)
{
myIng = MyString("hello");
}
私の考えでは、これは、Friend関数のIngredientクラスのプライベートデータメンバーの値を設定していて、Friend関数がすべてのプライベートデータメンバーにアクセスできる必要があるため、機能するはずです。
しかし、私はこのエラーを受け取ります: ‘myIng’ was not declared in this scope
なぜこれが起こっているのかについて何か考えはありますか?