虚继承之后的直接继承问题

Golden_Shadow 2011-09-28 03:48:24
class A
class B/虚继承 class C\虚继承
\ /
class D
|
class E
类定义如下:
class A
{
private:
int m_val ;
public:
A (int val = 0): m_val(val) {}
} ;

class B: virtual public A
{
public:
B (int val = 0): A(val) {}
} ;

class C: virtual public A
{
public:
C (int val = 0): A(val) {}
} ;

class D: public B, public C
{
public:
D (int val = 0): A(val), B(val), C(val) {}
} ;

class E: public D
{
public:
E (int val = 0): A(val), D(val) {}
} ;

问题是,E的构造函数这样写对不对?
...全文
150 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Golden_Shadow 2011-10-03
  • 打赏
  • 举报
回复
恩.了解了.
十分感谢.
Ol_lO 2011-10-03
  • 打赏
  • 举报
回复
lz写法没错
Vincent_Song 2011-10-03
  • 打赏
  • 举报
回复
其实对于这样的问题有时候没有必要花费太多时间。
yy377289478 2011-10-03
  • 打赏
  • 举报
回复
色灯光vcxvcx
yy377289478 2011-10-03
  • 打赏
  • 举报
回复
kjgisfeh,jbkd速度v
yy377289478 2011-10-03
  • 打赏
  • 举报
回复
vnctdytdryddytdtyfdf
ri_aje 2011-10-03
  • 打赏
  • 举报
回复
楼主的写法是正确的。
FrankHB1989 2011-10-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mengmingtao 的回复:]

派生类的构造函数只能描述它自己的成员和自己的直接基类的初始化
[/Quote]
虚基类除外。
mengmingtao 2011-10-02
  • 打赏
  • 举报
回复
派生类的构造函数只能描述它自己的成员和自己的直接基类的初始化
Golden_Shadow 2011-10-02
  • 打赏
  • 举报
回复
顶一下
cocoabird 2011-10-02
  • 打赏
  • 举报
回复
明显不对,3楼说的对
阿尼小码 2011-09-28
  • 打赏
  • 举报
回复
不对,E (int val = 0): A(val),B (int val = 0), C (int val = 0), D(val) {}

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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