строка не была объявлена, QT - PullRequest
5 голосов
/ 27 ноября 2009

Я пытаюсь изменить определенное сообщение в текстовом поле. Будет отображаться мой вывод.

Это то, что у меня есть в моем 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: ошибка: строка не была объявлена ​​

Спасибо.

Edit :: kk, так что теперь его показ :: TCPClient.cpp: 182: ошибка: невозможно вызвать функцию-член «virtual void Form2 :: changeOutput (std :: string)» без объекта

Ответы [ 2 ]

15 голосов
/ 27 ноября 2009

string находится в пространстве имен std, поэтому вам необходимо указать его как std::string или сделать имя доступным в текущей области с помощью using namespace std; или using std::string;.

Также заголовок называется string, а не string.h, поэтому включите его следующим образом:

#include <string>

Как правило, вы также можете использовать QT QString вместо std::string, если вы используете его вместе с компонентами QT, которые обычно принимают параметры QString.

1 голос
/ 27 ноября 2009

Я думаю, вы должны использовать заголовок <string>, а затем использовать std::string (еще лучше было бы const std::string &)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...