为什么要使用非会员功能?

时间:2013-10-08 22:43:19

标签: c++

我正在学习C ++中的friend关键字,我想知道为什么要使用非成员函数并使用friend关键字才能使非成员函数成为成员函数?我希望我的问题足够清楚,谢谢!

1 个答案:

答案 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;
}