c++ - 更改现有派生类的基类

标签 c++

目前,我正在编写一个应用程序,将液位测量数据显示到一些图表中。我总是在 x 轴上有日期/时间,在 y 轴上有数据。为此,我使用 Qwt 并修改了 QwtPlotPicker 类以显示正确的时间标签。我通过推导和重新定义一个成员函数来做到这一点:

class myQwtPlotPicker : public QwtPlotPicker {
Q_OBJECT

public:
  explicit myQwtPlotPicker( QWidget* canvas, bool DateScale = false );
  explicit myQwtPlotPicker( int xAxis, int yAxis, QWidget* canvas, bool DateScale = false );
  explicit myQwtPlotPicker( int xAxis, int yAxis, RubberBand rubberBand, DisplayMode trackerMode, QWidget* canvas, bool DateScale = false );
  virtual ~myQwtPlotPicker() {};

protected:
  virtual QwtText trackerTextF( const QPointF &position ) const {
    ... redefinition of the label text ...
  }

};

如您所见,我还添加了一个新参数 DateScale,它可以打开或关闭日期标签。这很完美,但是有一个类 QwtPlotZommer 派生自 QwtPlotPicker:

class QWT_EXPORT QwtPlotZoomer: public QwtPlotPicker { };

现在的问题是,如何让类 QwtPlotZommer 派生自 myQwtPlotPicker 而不是派生自 QwtPlotPicker? 或者我当然可以编辑 Qwt 源代码,但必须有适当的方法来进行此操作。

我希望有一个合适的方法来做到这一点。如果有人可以帮助我,我会很高兴。

最佳答案

尝试多重继承:

class myQwtPlotZoomer : public QwtPlotZoomer, public QwtPlotPicker { };

关于c++ - 更改现有派生类的基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18610218/

相关文章:

c++ - 限制第一人称相机的俯仰旋转c++ ue4

c++ - 位集声明导致 SIGSEGV

c++ - 将 QString 转换为 QString 的指针

c++ - 动态创建一个函数指针来调用给定实例上的方法

java - 从外部应用程序的屏幕获取数据

c++ - 在编译时确定模板函数结果的类型?

c++ - BGRA -> RGBA 和垂直翻转、OptiX

c++ - 核心转储,找不到原因

c++ - 使用模板实现 "visitor pattern"

c++ - 指针和字符串文字