Zeichenfolge wurde nicht erklärt, QT
Frage
Ich versuche, eine bestimmte Textfeld Nachricht zu ändern. Es wird mir eine Ausgabe angezeigt werden soll.
Das ist, was ich habe in meinem main ()
#include "form2.h"
....
string recvMSG = "random";
182 :: Form2 :: changeOutput (recvmsg); ...
In meinem Form2.h ich habe:
#include <string.h>
#include <iostream>
#include <stdlib.h>
...
void Form2::changeOutput(string s)
{
QString s1 = i18n(s);
output_box.setText(s1);
}
Aber ich immer noch erhalten: .ui / Form2.h: 56: Fehler: ‚string‘ wird nicht deklariert
Danke.
Bearbeiten :: kk so jetzt seine Darstellung :: TCPClient.cpp: 182: Fehler: kann nicht rufen Memberfunktion ‚virtual void Form2 :: changeOutput (std :: string)‘ ohne Objekt
Lösung
ist string
im std
Namespace, so müssen Sie entweder als std::string
beziehen, oder Sie müssen die Namen in dem aktuellen Bereich mit using namespace std;
oder using std::string;
machen.
Auch wird der Header genannt string
, nicht string.h
, so ist es so aus:
#include <string>
Generell könnte du auch Qt QString
statt std::string
verwenden, wenn Sie es in Verbindung mit QT-Komponenten verwenden, die in der Regel QString
Parameter übernehmen.
Andere Tipps
Ich denke, man den Header <string>
verwenden sollte, und dann std::string
verwenden (noch besser wäre const std::string &
)