Скажем, у меня есть такой класс:
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");
}
По-моему, это должно сработать, потому что я устанавливаю значение закрытого члена данных класса Ingredient в функции друга, а функция друга должна иметь доступ ко всем частным данным, верно?
Но я получаю эту ошибку: ‘myIng’ was not declared in this scope
Есть идеи, почему это происходит?