我刚开始学习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)
{
}
};
自己试试:(