Вопрос

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

Это то, что у меня есть в моей основной()

#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 &)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top