我应该如何在C ++中重载成员变量类型

时间:2015-04-16 10:28:14

标签: c++ qt inheritance multiple-inheritance

我有一些我定制的代码,目的略有不同。在这种情况下,使用新的Qt表单文件实现了轻微的UI更改。 UI项目都具有相同的名称,但已重新排列。这是给定的,我无法改变它。

使用UI的类需要使用生成的Qt表单类,它具有与原始文件不同的类型。让我们说原始的UI表单类称为CarDoorForm,新的一个称为LargeCarDoorForm。 让我们说使用表单UI的类最初是Car类。 Car类有一个CarDoorForm类型的私有成员变量_DoorForm。我想修改Car类,以便它使用LargeCarDoorForm而不是CarDoorForm。 那样就好;我最终得到了这个:

class Car {
public:
  ...
  QString doorColour() 
  {
    _DoorForm.paintColourTextEdit->text();
  }

  private:
    CarDoorForm _DoorForm;
  };
};
class LargeCar : public Car()
{
   ....
   private:
   LargeCarDoorForm _DoorForm
};

我可以获得任一对象的doorColor而无需在LargeCar中重新实现很多代码。 现在,在我的代码中,我有几个已经从Car继承的类,在我的自定义代码中,我希望它们在新的LargeCar类中使用ui。 例如,使用原始Car类的类:

    class AutonomousCar: public Car
    {
    ..
    public:
      void showDoorColour() 
      {
         std::cout << doorColour();          
      }
      .. tons of other functions ..
    };

AutonomousCar类很大,功能很多。如果我想要一个具有AutonomousCar的所有功能但是LargeCar的UI的新类,有没有办法使用多重继承(或其他一些设计功能)来实现这一目标?

0 个答案:

没有答案