Вопрос
Я пытаюсь изменить определенное сообщение в текстовом поле.Он отобразит мой вывод.
Это то, что у меня есть в моей основной()
#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:ошибка:«строка» не была объявлена
Спасибо.
Редактировать::ок, теперь это показывает::TCPClient.cpp:182:ошибка:невозможно вызвать функцию-член «virtual void Form2::changeOutput(std::string)» без объекта
Решение
string
находится в std
пространство имен, поэтому вам нужно либо ссылаться на него как std::string
, или вам нужно сделать имя доступным в текущей области с помощью using namespace std;
или using std::string;
.
Также заголовок называется string
, нет string.h
, поэтому включите его следующим образом:
#include <string>
Как правило, вы также можете использовать QT QString
вместо std::string
если вы используете его вместе с компонентами QT, которые обычно занимают QString
параметры.
Другие советы
Я думаю, вам следует использовать заголовок <string>
а затем использовать std::string
(даже лучше было бы const std::string &
)