Question
J'essaie de modifier un certain message de zone de texte. Il affichera ma sortie.
C'est ce que j'ai dans ma main ()
#include "form2.h"
....
string recvMSG = "random";
182 :: Form2 :: changeOutput (recvMSG); ...
dans mon formulaire2.h j'ai:
#include <string.h>
#include <iostream>
#include <stdlib.h>
...
void Form2::changeOutput(string s)
{
QString s1 = i18n(s);
output_box.setText(s1);
}
Mais je reçois toujours: .ui / form2.h: 56: erreur: & # 8216; chaîne & # 8217; n'a pas été déclaré
Merci.
Edit :: kk donc maintenant sa diffusion :: TCPClient.cpp: 182: erreur: impossible d'appeler la fonction membre & # 8216; void virtuel Form2 :: changeOutput (std :: string) & # 8217; sans objet
La solution
string
se trouve dans l'espace de noms std
. Vous devez donc l'appeler std::string
ou rendre le nom disponible dans l'étendue actuelle avec using namespace std;
ou using std::string;
.
L’en-tête est également appelé string.h
, et non pas QString
. Inclus-le donc:
#include <string>
En règle générale, vous pouvez également utiliser <=> de QT au lieu de <=> si vous l'utilisez avec des composants QT qui prennent généralement des <=> paramètres.
Autres conseils
Je suppose que vous devriez utiliser l'en-tête <string>
puis utiliser std::string
(mieux serait const std::string &
)