我正在学习C ++中的friend
关键字,我想知道为什么要使用非成员函数并使用friend
关键字才能使非成员函数成为成员函数?我希望我的问题足够清楚,谢谢!
答案 0 :(得分:8)
因为有时您需要创建一个重载运算符,其类类型位于右侧。这必须作为自由函数实现。经典例子:
ostream& operator<<(ostream& str, my_type const& my)
{
// print out `my` into `str`---requires `friend` if using
// private members of `my_type`
return str;
}