ano*_*les 0 c++ polymorphism inheritance
我试图在C++中覆盖这样的基类
class A:
QWidget *getWidget();
class B: public A:
using A::getWidget;
QWidget *getWidget();
Run Code Online (Sandbox Code Playgroud)
当我尝试使用它时:
A *test = new B();
test->getWidget();
Run Code Online (Sandbox Code Playgroud)
这里,返回A类的小部件.有没有办法获得小部件B?因为我不想从检查我的类开始并向下转到B来获取正确的小部件,所以我希望能够使用它类似于上面的代码片段.有什么建议?
首先,你应该申报getWidget()的virtual,如果你希望你的函数调用的动态多态分辨率.这应该可以解决您正在解决的特定问题.
其次,它using A::getWidget是无用的,因为你将A函数getWidget()导入到B已经定义了具有相同名称和签名的函数的范围内.
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |