c++中输入输出流为什么必须重载为友元
1个回答
2017-12-15
展开全部
若是将输入输出流重载为类的成员函数,形式为:
cout.operator<<(Complex &c1);
因为cout类的opetator<<函数的源码无法改变,所以无法重载为类的成员函数;
操作符重载过程中,需要用的类的成员变量,所以只是重载为全局函数,无法使用类的成员变量,所以将操作符重载为友元函数。
cout.operator<<(Complex &c1);
因为cout类的opetator<<函数的源码无法改变,所以无法重载为类的成员函数;
操作符重载过程中,需要用的类的成员变量,所以只是重载为全局函数,无法使用类的成员变量,所以将操作符重载为友元函数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询