Pregunta
Estoy intentando cambiar un determinado mensaje de cuadro de texto.Mostrará mi salida.
Esto es lo que tengo en mi main()
#include "form2.h"
....
string recvMSG = "random";
182::Formulario2::cambiarSalida(recvMSG);...
dentro de mi form2.h tengo:
#include <string.h>
#include <iostream>
#include <stdlib.h>
...
void Form2::changeOutput(string s)
{
QString s1 = i18n(s);
output_box.setText(s1);
}
Pero todavía recibo:.ui/form2.h:56:error:'cadena' no ha sido declarada
Gracias.
Editar::kk entonces ahora se muestra::TCPClient.cpp:182:error:no se puede llamar a la función miembro 'virtual void Form2::changeOutput(std::string)' sin objeto
Solución
string
está en el espacio de nombres std
, por lo que debe referirse a él como std::string
, o debe hacer que el nombre esté disponible en el ámbito actual con using namespace std;
o using std::string;
.
También el encabezado se llama string.h
, no QString
, así que inclúyalo de esta manera:
#include <string>
En general, también es posible que desee utilizar QT's <=> en lugar de <=> si lo está utilizando en conexión con componentes QT que generalmente toman <=> parámetros.
Otros consejos
Supongo que deberías usar el encabezado. <string>
y luego usar std::string
(incluso mejor sería const std::string &
)