la stringa non è stata dichiarata, QT
Domanda
Sto cercando di cambiare un determinato messaggio di casella di testo. Visualizzerà il mio output.
Questo è quello che ho nel mio main ()
#include "form2.h"
....
string recvMSG = "random";
182 :: Form2 :: changeOutput (recvMSG); ...
nel mio form2.h ho:
#include <string.h>
#include <iostream>
#include <stdlib.h>
...
void Form2::changeOutput(string s)
{
QString s1 = i18n(s);
output_box.setText(s1);
}
Ma ottengo ancora: .ui / form2.h: 56: errore: & # 8216; stringa & # 8217; non è stato dichiarato
Grazie.
Modifica :: kk quindi ora mostra :: TCPClient.cpp: 182: errore: impossibile chiamare la funzione membro & # 8216; virtual void Form2 :: changeOutput (std :: string) & # 8217; senza oggetto
Soluzione
string
si trova nello spazio dei nomi std
, quindi è necessario fare riferimento a esso come std::string
oppure è necessario rendere il nome disponibile nell'ambito corrente con using namespace std;
o using std::string;
.
Anche l'intestazione si chiama string.h
, non QString
, quindi includila in questo modo:
#include <string>
In genere potresti anche voler usare i QT <=> invece di <=> se lo stai usando in connessione con componenti QT che di solito accettano <=> parametri.
Altri suggerimenti
Suppongo che dovresti usare l'intestazione <string>
e quindi usare std::string
(ancora meglio sarebbe const std::string &
)