发布网友 发布时间:2024-10-13 04:18
共2个回答
热心网友 时间:2024-10-13 07:05
不知道你有没有看过iostream的头文件,在iostream中,>>和<<本身就已经被定义为一个类了,和传统的+,-,++等都是不同的,所以在进行这两个操作符重载的时候就非常的特殊的,因为它们本身是一个类,你在重载了以后就必须是用友元函数来调用访问,这里就有一个问题了,一个类里面是可以定义另一个类的成员的,相必这个你也知道,但是,你总不可能在一个雷里面用操作符来实例化一个成员吧?所以想要对这两个操作符重载的时候也就只能用友元函数了热心网友 时间:2024-10-13 07:08
在c++中的许多书中规定了<<和>>只能用友元函数进行重载,并没有对为什么这么做进行具体的说明(个人觉得C和c++中的一些规范定制时并不具备相应的逻辑性,所以可以不必过于纠结他的内涵,有的只要把个别比较特殊的例子记住就可以了)