Друг не может получить доступ к личным переменным?
class LongInt
{
friend ostream & operator <<(ostream & os, const LongInt & integer);
...
}
ostream & operator <<(ostream & os, LontInt & container)
{
os << container.number.size(); //error here
return os;
}
ошибка: 'std::vector LongInt::number' является частным векторным номером; ^
Я не понимаю, почему я не могу получить доступ к переменной, это связано с тем, что переменная-член является вектором?
2 ответа
Решение
Потому что это не друг этой функции: подпись другая. Заметка const
модификатор второго параметра.
Я думаю, что вам не хватает const
в декларации перед LongInt
, что делает подписи разными, и компилятор не думает, что это та же функция, которую вы объявили другом.