函数声明:
Q_INVOKABLE void formPackets (unsigned char argPacketDescriptor,
unsigned char argNoOfBytes,
QVector<unsigned char> argBody);
第三个参数
QVector
应该是可选的。 我知道一种方法是为
QVector
指定默认参数,但是我不知道如何使用“QVector”或“QList”来实现。如何在C++中将
QVector
作为可选参数传递给函数? 最佳答案
要使用默认参数,当缺少参数时,您需要提供要使用的默认值。所以简单地这应该工作:
Q_INVOKABLE void formPackets (unsigned char argPacketDescriptor,
unsigned char argNoOfBytes,
QVector<unsigned char> argBody = QVector<unsigned char>());
供引用,这里是doc link to
QVector
default constructor。以上假设,您不需要“没有给定 vector ”和“给定空 vector ”来表示不同的事物。如果确实需要它们表示不同的含义,则需要提供单独的重载:
Q_INVOKABLE void formPackets (unsigned char argPacketDescriptor,
unsigned char argNoOfBytes,
QVector<unsigned char> argBody);
Q_INVOKABLE void formPackets (unsigned char argPacketDescriptor,
unsigned char argNoOfBytes);
第三种Qt方法是将第三个参数传递为
QVariant
。然后,您可以让null QVariant
表示无自变量,而QVector
表示空或无,表示该自变量存在。函数声明:Q_INVOKABLE void formPackets (unsigned char argPacketDescriptor,
unsigned char argNoOfBytes,
QVariant argBody);