(转)为什么operator运算符重载一定要为友元函数呢

如果是重载双目操作符(即为类的成员函数),就只要设置一个参数作为右侧运算量,而左侧运算量就是对象本身

而 >> 或<< 左侧运算量是 cin或cout 而不是对象本身,所以不满足后面一点,就只能申明为友元函数了

如果一定要声明为成员函数,只能成为如下的形式:

ostream & operator<<(ostream &output)

{

  return output;

}

*所以在运用这个<<运算符时就变为这种形式了:data<

猜你喜欢

转载自blog.csdn.net/qq_38350514/article/details/81463036