0
我不明白爲什麼std::string
在將它傳遞給構造函數時轉換爲QString。下面是小例子:在構造函數中將std :: string轉換爲QString
class StringHandler
{
private:
QString str;
public:
StringHandler(QString s): str(s) {}
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::string str = "string";
QString qstr(str); // it gives error there are no constructor QString(std::string)
StringHandler handler(QString(str));//it does not give an error. Why?
return a.exec();
}
編輯:
class StringHandler
{
public:
StringHandler(QString s): str(s) {}
QString str;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
std::string str = "string";
StringHandler handler(QString(str));//Here should be error, but there no error. Why?
qDebug()<<handler.str; //Error is here: request for member 'str' in 'handler', which is of non-class type 'StringHandler(QString)'
return a.exec();
}
請添加實際的錯誤輸出。 –
可能重複[如何將字符串轉換爲QString?](http://stackoverflow.com/questions/1814189/how-to-change-string-into-qstring) – emlai
@zenith問題不是關於錯誤。我不明白爲什麼這行:'StringHandler處理程序(QString(str))'工作。 – Leo