QJsonValue是私有的吗? 我正在学习C++,试图制造一些东西。但是我遇到了一个错误,我不知道发生了什么。我试图创建一个简单的东西来接受一个数组,并将它转换成JSON。但我有个错误 'QJsonValue::QJsonValue(const void*)' is private within this context

QJsonValue是私有的吗? 我正在学习C++,试图制造一些东西。但是我遇到了一个错误,我不知道发生了什么。我试图创建一个简单的东西来接受一个数组,并将它转换成JSON。但我有个错误 'QJsonValue::QJsonValue(const void*)' is private within this context,c++,qt,C++,Qt,文件 接受功能 void Socket::sendData(QJsonArray data) { qDebug() << data[1]; } void套接字::sendData(QJsonArray数据) { qDebug()您的问题在于: data.prepend(“Hello”); >代码>预编码< /COD>成员函数包含一个 QjSnalsAuth/Cuth>,它有很多构造函数。在 const char */COD>中,对于你引用的是什么,它是含糊不清的。C++编

文件

接受功能

void Socket::sendData(QJsonArray data)
{
    qDebug() << data[1];
}
void套接字::sendData(QJsonArray数据)
{
qDebug()您的问题在于:

data.prepend(“Hello”);

<> >代码>预编码< /COD>成员函数包含一个<代码> QjSnalsAuth/Cuth>,它有很多构造函数。在<代码> const char */COD>中,对于你引用的是什么,它是含糊不清的。C++编译器将在将其解析为<代码> QStudio之前将其解析为<代码>布尔-< /代码>。
QJsonValue
的作者这样做:

private:
    // avoid implicit conversions from char* to bool
    inline QJsonValue(const void*) {}
在任何情况下,您都可以通过更明确的方式解决此问题:

data.prepend(QStringLiteral("Hello")); // Qt 5
data.prepend(QLatin1String("Hello")); // Qt 4, Latin1 string
data.prepend(QString("Hello")); // Qt 4, non-Latin1 string
有关
QStringLiteral

的更多信息,请查看您的问题:

data.prepend(“Hello”);

<> >代码>预编码< /COD>成员函数包含一个<代码> QjSnalsAuth/Cuth>,它有很多构造函数。在<代码> const char */COD>中,对于你引用的是什么,它是含糊不清的。C++编译器将在将其解析为<代码> QStudio之前将其解析为<代码>布尔-< /代码>。
QJsonValue
的作者这样做:

private:
    // avoid implicit conversions from char* to bool
    inline QJsonValue(const void*) {}
在任何情况下,您都可以通过更明确的方式解决此问题:

data.prepend(QStringLiteral("Hello")); // Qt 5
data.prepend(QLatin1String("Hello")); // Qt 4, Latin1 string
data.prepend(QString("Hello")); // Qt 4, non-Latin1 string
查看有关
QStringLiteral
的更多信息