A -> virtual Fun
B : A -> override Fun
C : B -> override Fun
D : C -> new virtual Fun
E : D -> override Fun
E e;
A = e -> C.Fun
B = e -> C.Fun
C = e -> C.Fun
D = e -> E.Fun
Rule: 如A=e,则假设调用A.Fun,发现被B override, 再到B, 发现被C override, 继续到D,发现被NEW隐藏,故此用C
PS -> 对于E构造,顺序为 A->B>C>D>E..如果没有显示的指定调用哪个构造函数(:base(...)), 则每个基类至少有一个子类能访问的无参构造函数,如果一个构造函数都没有,则系统会自动创建一个。
本文探讨了C++中类的继承与虚函数的使用方式。通过实例解析了不同层次继承下虚函数的覆盖与调用流程,以及如何确定具体调用哪个函数版本。
1549

被折叠的 条评论
为什么被折叠?



