gpt4 book ai didi

c++ - 在构造基类期间访问继承的方法?

转载 作者:行者123 更新时间:2023-11-30 01:21:53 26 4
gpt4 key购买 nike

我有一个奇怪的 C++ 问题,我不确定它是否以这种方式正常工作,或者我是否遗漏了什么。

有一个A类继承自ABaseABaseA 都有一个方法 Generate()A::Generate() 应该覆盖 ABase::Generate().

Generate() 是从 ABase 的构造函数中调用的。

现在我的问题:

我做了一个 new A(),它首先跳转到 A 的构造函数,然后从那里跳转到 ABase 的构造函数。 ABase::ABase() 现在调用 Generate()。我想要做的:A::Generate() 应该被执行(因为这会覆盖 ABase::Generate())。

不幸的是,ABase 的构造函数似乎只调用了 ABase::Generate() 而从不调用 A::Generate() .

我猜这是因为 A 在这个阶段还没有完全构建好?或者有没有办法让 ABase::ABase() 使用 A::Generate()

最佳答案

想要执行A::Generate(),因为这将涉及在尚未被执行的类上执行一个函数建。 C++ 是有意设计的,以便在构造,对象的动态类型是被构造的类型构造,正是为了避免这类问题。

关于c++ - 在构造基类期间访问继承的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17471618/

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