源气泡 2022-07-10 23:55 采纳率: 88.9%
浏览 43
已结题

这个是不是反了呀,怎么看呢

img


(1)不是应该d1=b1吗
派生类对象可以赋值给基类对象,是派生类把值给基类吧。

  • 写回答

4条回答 默认 最新

  • 真相重于对错 2022-07-11 09:26
    关注

    b1=d这句话所包含的意义,你可能还没学到。
    也就是说b1=d发生了什么?
    c语言里面int a,b;
    a=b,不过是先把b的值放到寄存器中,再把寄存器里面的值复制到a,那么对于类就不太一样了,因为int只有4个字节,可以放到寄存器里面,一个类一般放不下,
    所以b1=d,其实是b1.operator=(d); operator= 是重载运算符,当你定义一个类时,编译器会默认提供3个函数,默认构造函数,拷贝构造函数,和赋值函数就是operator=它的原型是
    Base& operator=(const Base& rh),结合b1=d,就是调用operator=(d),也就是把d转为了const Base&

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月19日
  • 已采纳回答 7月11日
  • 创建了问题 7月10日

悬赏问题

  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码