C++这里派生类的复制给基类的怎么理解呢

lch668866 2018-10-08 10:56:15


这里主程序的第二行不太懂
...全文
309 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
林de 2018-10-23
  • 打赏
  • 举报
回复
这题这样的,首先析构函数的析构顺序是先子类,后父类。main函数中析构顺序是从下到上。所以
B b;
A a = b;
先析构A a = b;即调class A的析构函数,再B b;调子类B的析构函数,再调其父类A的析构函数。
棉猴 2018-10-15
  • 打赏
  • 举报
回复
引用 3 楼 lch668866 的回复:
引用 1 楼 u010165006 的回复:
应该会执行拷贝构造(不是operator=赋值),派生类对象可以当做基类对象使用,内存布局中,派生类对象的前面部分等于一个基类对象。
那么这里派生类的复制给基类,就相当于创建了一个基类对象a? 也就是说A a=b 其实就是A a?

派生类b中包含了基类A的内容,所以a实际上是与b中基类内容相同
ooolinux 2018-10-13
  • 打赏
  • 举报
回复
引用 3 楼 lch668866 的回复:
引用 1 楼 u010165006 的回复:
应该会执行拷贝构造(不是operator=赋值),派生类对象可以当做基类对象使用,内存布局中,派生类对象的前面部分等于一个基类对象。
那么这里派生类的复制给基类,就相当于创建了一个基类对象a? 也就是说A a=b 其实就是A a?


应该会执行拷贝构造,把b当做一个A类对象来构造a。
lch668866 2018-10-12
  • 打赏
  • 举报
回复
引用 2 楼 hou09tian 的回复:
《C++Primer第5版中文版》中提到
因为在派生类对象中含有与其基类对应的组成部分,所以我们能把派生类的对象当成基类的对象来使用,而且我们也能将基类的指针或引用绑定到派生类对象的基类部分上。

那么这里派生类的复制给基类,就相当于创建了一个基类对象a? 也就是说A a=b 其实就是A a?
lch668866 2018-10-12
  • 打赏
  • 举报
回复
引用 1 楼 u010165006 的回复:
应该会执行拷贝构造(不是operator=赋值),派生类对象可以当做基类对象使用,内存布局中,派生类对象的前面部分等于一个基类对象。
那么这里派生类的复制给基类,就相当于创建了一个基类对象a? 也就是说A a=b 其实就是A a?
棉猴 2018-10-09
  • 打赏
  • 举报
回复
《C++Primer第5版中文版》中提到
因为在派生类对象中含有与其基类对应的组成部分,所以我们能把派生类的对象当成基类的对象来使用,而且我们也能将基类的指针或引用绑定到派生类对象的基类部分上。
ooolinux 2018-10-08
  • 打赏
  • 举报
回复
应该会执行拷贝构造(不是operator=赋值),派生类对象可以当做基类对象使用,内存布局中,派生类对象的前面部分等于一个基类对象。

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧