C++ 百科上 虚基类 的这三句话怎么理解啊?
虚基类的初始化与一般多继承的初始化在语法上是一样的,但构造函数的调用次序不同.派生类构造函数的调用次序有三个原则:(1)虚基类的构造函数在非虚基类之前调用;(2)若同一层...
虚基类的初始化与一般多继承的初始化在语法上是一样的,但构造函数的调用次序不同.
派生类构造函数的调用次序有三个原则:
(1)虚基类的构造函数在非虚基类之前调用;
(2)若同一层次中包含多个虚基类,这些虚基类的构造函按它们说明的次序调用
(3)若虚基类由非虚基类派生而来,则仍先调用基类构造函数,再调用派生类的构造函数.
我不明白最后一句话。它的意思就是说,这里虚基类变成了派生类,上面是他的基类,那么先调用基类。(这不是跟第一句话相互矛盾么?)
如果说不矛盾,那么总结下来,就是上层先调用,一层层下来直到子类。这不是跟没讲一样么? 展开
派生类构造函数的调用次序有三个原则:
(1)虚基类的构造函数在非虚基类之前调用;
(2)若同一层次中包含多个虚基类,这些虚基类的构造函按它们说明的次序调用
(3)若虚基类由非虚基类派生而来,则仍先调用基类构造函数,再调用派生类的构造函数.
我不明白最后一句话。它的意思就是说,这里虚基类变成了派生类,上面是他的基类,那么先调用基类。(这不是跟第一句话相互矛盾么?)
如果说不矛盾,那么总结下来,就是上层先调用,一层层下来直到子类。这不是跟没讲一样么? 展开
3个回答
展开全部
不矛盾,1)是指同层基类,3)指的是不同层基类。虚基类的基类当然必须在基类之前被构造,对于所有的类都这样,基类早于派生类构造。
很多文章本来就有很多废话的。
很多文章本来就有很多废话的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询