相关疑难解决方法(0)

覆盖非虚方法

让我们假设Visual C++ 2010中的这种情况:

#include <iostream>
#include <conio.h>

using namespace std;

class Base
{
public:
    int b;
    void Display()
    {
        cout<<"Base: Non-virtual display."<<endl;
    };
    virtual void vDisplay()
    {
        cout<<"Base: Virtual display."<<endl;
    };
};

class Derived : public Base
{
public:
    int d;
    void Display()
    {
        cout<<"Derived: Non-virtual display."<<endl;
    };
    virtual void vDisplay()
    {
        cout<<"Derived: Virtual display."<<endl;
    };
};

int main()
{
    Base ba;
    Derived de;

    ba.Display();
    ba.vDisplay();
    de.Display();
    de.vDisplay();

    _getch();
    return 0;
};
Run Code Online (Sandbox Code Playgroud)

从理论上讲,这个小应用程序的输出应该是:

  • 基础:非虚拟显示.
  • 基地:虚拟展示.
  • 基础:非虚拟显示.
  • 衍生:虚拟显示.

因为Base类的Display方法不是虚方法,所以Derived类不能覆盖它.对?

问题是,当我运行应用程序时,它会打印出:

  • 基础:非虚拟显示. …

c++ overriding

64
推荐指数
3
解决办法
5万
查看次数

使用 Qt 实现切换按钮的最佳方法

使用 Qt 框架实现切换按钮的最佳方法是什么?

编辑:

我知道的唯一可能性是QPushButton. 根据 Qt 文档,QPushButton::setCheckable(bool)允许有开/关行为。如何让它出现如下所示?知道我使用 Qt 5.1.1

在此输入图像描述

user-interface qt togglebutton

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

c++ ×1

overriding ×1

qt ×1

togglebutton ×1

user-interface ×1