运算符[]使用友元函数重载

时间:2017-03-06 16:31:51

标签: c++ operator-overloading operator-keyword friend-function

为什么不能将下标运算符(operator [])重载为友元函数?

2 个答案:

答案 0 :(得分:1)

正如Bjarne Stroustrup在D&E book中所说的那样:

  

然而,即使在C ++的原始设计中,我也限制了运算符p4 switch //libX/projectA (make changes) p4 submit p4 switch //projectA/main []()成为成员。这似乎是一种无害的限制,消除了一些模糊错误的可能性,因为这些操作符总是依赖于并且通常会修改其左侧操作数的状态。然而,这可能是一种不必要的保姆主义。

答案 1 :(得分:0)

Friends不是您班级的扩展,只是一个关键字,表示xy可以访问您班级的私人或受保护成员。你不能以这种方式覆盖或添加功能。

  

友元声明出现在一个类体中,并授予一个函数或另一个类访问友元声明出现的类的私有和受保护成员。

Source