neh*_*ika 4 c++ multiple-inheritance
class A: public B, public C { };
Run Code Online (Sandbox Code Playgroud)
在这种情况下,执行顺序是:
B(); // base(first)
C(); // base(second)
A(); // derived
Run Code Online (Sandbox Code Playgroud)
class A: public B, virtual public C { };
Run Code Online (Sandbox Code Playgroud)
但是在这种情况下,当我在继承时用c类写虚拟时,顺序为
// execution becomes:
C(); // virtual base
B(); // ordinary base
A(); // derived
Run Code Online (Sandbox Code Playgroud)
我已经读过某个地方,调用构造函数的顺序依赖于声明的顺序,同时继承多个类但是如何在用类编写虚拟时改变执行的顺序.我无法理解为什么我得到这样的结果.
| 归档时间: |
|
| 查看次数: |
1285 次 |
| 最近记录: |