gpt4 book ai didi

C++多级继承函数调用

转载 作者:行者123 更新时间:2023-11-30 03:53:59 24 4
gpt4 key购买 nike

考虑 C++ 类之间的多级继承。考虑:

struct A { 
void Dummy1() { }
};

struct B : A {
void Dummy1() { }
};

struct C : B {
void Dummy() {
Dummy1();
}

void Dummy1() { }
};

struct D : C {
void Dummy1() { }
};

struct E : D {
void Dummy1() { }
};

给定:

E e;
e.Dummy();

我想知道哪个 Dummy1 会被调用。 C类中定义的还是E类中定义的?

此外,我对多级继承中的函数调用感到非常困惑,例如虚函数等。有人可以推荐一本书或一篇文章来帮助我理解这一点。我在谷歌上搜索了很多,但没有找到任何有用的信息。

提前致谢。

最佳答案

I want to know which Dummy1 would be called. The one defined in class C or the one defined in class E?

根据您的代码,它将调用 C 中定义的代码。

如果你想让它调用定义在 E 中的函数,你必须让 Dummy1 成为一个 virtual 函数。

关于C++多级继承函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com