0
点赞
收藏
分享

微信扫一扫

c++中输入输出流为什么必须重载为所需类的友元


问:为什么不能重载为所需类的成员函数?

答:因为重载为成员函数在调用时是有this指针的,且this只能指向该类的对象,而输入输出流的使用对象只能是cout或者cin,所以不能重载为所需类的成员函数。

倒是可以重载为ostream的成员函数,但是源码没法改变,所以只能重载为全局函数。

又因为重载后的运算符会访问到所需类的私有成员,所以只能将其重载为所需类的友元函数。

举报

相关推荐

0 条评论