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'是私有的 矢量数; ^
我不明白为什么我无法访问变量,是否必须对成员变量是向量这一事实做些什么?
答案 0 :(得分:3)
因为它不是该功能的朋友:签名是不同的。注意第二个参数的const
修饰符。
答案 1 :(得分:1)
我认为你在const
之前的声明中缺少LongInt
,这使得签名不同,并且编译器认为它与你声明为朋友的函数不同。