首页 > 解决方案 > 带有附加类复制构造函数的菱形继承

问题描述

所以我最近想知道如果我们有一个基类A实际上被Band继承,类的复制构造函数会是什么样子C,在哪里BC被继承,D并且D被继承E

在此处输入图像描述

所以我有点困惑。的复制构造函数是否应该在其初始化列表中D仍然具有基类的 ( ) 构造函数,还是现在的工作?我是否正确可以非虚拟继承?AEED

标签: c++copy-constructor

解决方案


是的,A应该还在初始化列表中,E不需要D虚拟继承。施工顺序应为:

A() --> B() --> C() --> D()

推荐阅读