中易网

求大神解答一下,在c++中重载了流提取和插入运算符(友元函数),并定义了文件类fstream的对象

答案:2  悬赏:20  
解决时间 2021-04-27 15:23
  • 提问者网友:北故人
  • 2021-04-27 02:17
求大神解答一下,在c++中重载了流提取和插入运算符(友元函数),并定义了文件类fstream的对象用重载函数来对派生类进行对象文件的读取和写入,由于我想对用基类指针指向派生类对象,所以必须用把友元函数定义为虚函数,可是不能,求大神赐教,如何解决
最佳答案
  • 二级知识专家网友:悲观垃圾
  • 2021-04-27 02:39
虚函数是属于类的。
友元函数是全局的(可以这样认为),只是能访问类的数据而已。不属于类,怎么能是虚的?
想体现多态性通常在于调用虚函数,因此友元函数本身难以实现你的要求。
可以为每个类添加友元函数,或者直接重载,参数为对象,不能是指针。
全部回答
  • 1楼网友:哥在撩妹请勿打扰
  • 2021-04-27 03:15
因为类的成员二元运算符重载要求运算符左操作数为运算符函数的第一个参数,而流类库中的>>则要求第一个参数为ostream的引用,所以不能作为类成员,只能作为友元.
可能比较难理解,应用时知道把它重载为友元就可以了
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息