gpt4 book ai didi

c++ - 覆盖基类无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 15:23:05 27 4
gpt4 key购买 nike

我正试图在 C++ 中重写这样的基类

class A:
QWidget *getWidget();

class B: public A:
using A::getWidget;
QWidget *getWidget();

当我尝试使用它时:

A *test = new B();
test->getWidget();

在这里,返回类 A 的小部件。有没有办法获得小部件B?由于我不想从检查我的类开始并向下转换为 B 以获得正确的小部件,因此我希望能够像上面的代码片段一样使用它。有什么建议吗?

最佳答案

首先,如果您想要函数调用的动态多态解析,您应该将 getWidget() 声明为 virtual。这应该可以解决您正在解决的特定问题。

其次,using A::getWidget 是没有用的,因为您正在将 A 的函数 getWidget() 导入到B,它已经定义了一个具有相同名称和签名的函数。

关于c++ - 覆盖基类无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14676254/

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