Друг не может получить доступ к личным переменным?

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, что делает подписи разными, и компилятор не думает, что это та же функция, которую вы объявили другом.

Другие вопросы по тегам