字符串尚未声明,QT

时间:2009-11-27 12:39:30

标签: c++ qt

我正在尝试更改某个文本框消息。它将显示我的输出。

这就是我在main()

中的内容
#include "form2.h"
....
string recvMSG = "random";

182 :: Form2 :: changeOutput(recvMSG);     ...

在我的form2.h中我有:

#include <string.h>    
#include <iostream>
#include <stdlib.h>    
...
    void Form2::changeOutput(string s)
    {
    QString s1 = i18n(s);
    output_box.setText(s1);

    }

但我仍然得到: .ui / form2.h:56:错误:'string'尚未声明

感谢。

编辑:: kk所以现在显示:: TCPClient.cpp:182:错误:无法调用成员函数'virtual void Form2 :: changeOutput(std :: string)'没有对象

2 个答案:

答案 0 :(得分:15)

string位于std命名空间中,因此您需要将其称为std::string,或者您需要在using namespace std;的当前范围内使用该名称}或using std::string;

此标题也称为string,而不是string.h,因此请按以下方式添加:

#include <string>

一般情况下,如果您将QT QString与通常采用std::string参数的QT组件结合使用,也可能需要使用QT QString而不是{{1}}。

答案 1 :(得分:1)

我猜你应该使用标题<string>,然后使用std::string(更好的是const std::string &