C++ 朋友不能访问私有变量? class LongInt { friend ostream&operator
我认为您在C++ 朋友不能访问私有变量? class LongInt { friend ostream&operator,c++,friend,C++,Friend,我认为您在LongInt之前的声明中缺少了一个const,这使得签名不同,并且编译器认为它与您声明为friend的函数不同。因为它不是该函数的朋友:签名不同。注意constmodi第二个参数的fier。ah,奇怪,它应该给我一个不同的错误消息。@实际上不应该。这是因为friend说明符不强制您拥有具有指定签名的函数。如果您试图在外部类/全局函数中使用私有成员,它将检查该类/全局函数是否正确在朋友列表中,-1不是真正的代码(给定的代码有语法错误和拼写错误) class LongInt {
LongInt
之前的声明中缺少了一个const
,这使得签名不同,并且编译器认为它与您声明为friend的函数不同。因为它不是该函数的朋友:签名不同。注意const
modi第二个参数的fier。ah,奇怪,它应该给我一个不同的错误消息。@实际上不应该。这是因为friend
说明符不强制您拥有具有指定签名的函数。如果您试图在外部类/全局函数中使用私有成员,它将检查该类/全局函数是否正确在朋友列表中,-1不是真正的代码(给定的代码有语法错误和拼写错误)
class LongInt
{
friend ostream & operator <<(ostream & os, const LongInt & integer);
...
}
ostream & operator <<(ostream & os, LontInt & container)
{
os << container.number.size(); //error here
return os;
}