在具有多重继承的类构造函数中传递什么



我刚开始学习C++和QT,如果这是一个奇怪的问题,很抱歉。

我从两个类继承了一个类,每个类都有一个构造函数。如何将参数正确地传递给这两个构造函数?

我有头等舱-无线传感器

class WirelessSensor : public BoxSensor
{
public:
explicit WirelessSensor(const unsigned int id, const QString &type, const QString &address, QObject *parent = nullptr);
};

第二类-SwitchSensor

class SwitchSensor : public BinarySensor
{
public:
explicit SwitchSensor(const unsigned int id, const QString &type, const bool &inverted, QObject *parent = nullptr);
};

这是我继承的类-WirelessSwitchSensor.h

class WirelessSwitchSensor : public WirelessSensor, public SwitchSensor
{
public:
explicit WirelessSwitchSensor(const unsigned int id, const QString &type, const QString &address, QObject *parent = nullptr);
};

但在WirelessSwitchSensor.cpp文件中,它突出显示了错误:[https://i.stack.imgur.com/HQswI.png]

在构造函数"WirelessSwitchSensor::WirelessSwitchSensor(unsigned int,const QString&,const QS String&、QObject*("中:..\Test\Sensor\wirelessswitchsensor.cpp:47:error:调用"SwitchSensor::SwitchSensor(("没有匹配的函数:无线传感器(id、类型、地址、父级(

WirelessSwitchSensor.cpp

WirelessSwitchSensor::WirelessSwitchSensor(const unsigned int id,  const QString &type, const QString &address, QObject *parent)
: WirelessSensor(id, type, address, parent)
{
}

为我继承的类编写构造函数的正确方法是什么?

它非常简单-您需要通过链接派生类中的初始化来直接调用它:

struct A
{
A(int a) { AA=a; }
int AA;
};
struct B
{
B(std::string b) { BB=b;}
std::string BB;
};
struct C : public A, public B
{
C(int a, std::string b) 
:A(a),
B(b)
{
}
};

自己试试:(

相关内容

  • 没有找到相关文章

最新更新