GNU/Linux >> Tutoriales Linux >  >> Linux

identificador esperado antes de la constante de cadena

Hay otra forma más simplificada de hacer lo que quiere:simplemente cambie su declaración de test tst_("Hi"); a test tst_{"Hi"}; y funcionará A continuación se muestra el código modificado y funciona como se esperaba.

#include <iostream>
#include <string>
using namespace std;
class test
{
public:
    test(std::string s):str(s){cout<<"str is: "<<s;}
private:
    std::string str;
};

class test1
{
public:
    test tst_{"Hi"};
};

int main()
{   test1 obj;
    return 0;
}

Tenga en cuenta que acabo de cambiar test tst_("Hi"); al test tst_{"Hi"}; y todo lo demás es exactamente igual. Solo para confirmar que esto funciona, he agregado un cout para verificar que inicialice la variable str correctamente. Creo que esta solución de una línea es más elegante (al menos para mí) y está actualizada con el nuevo estándar.


No puede inicializar tst_ donde lo declaras. Esto solo se puede hacer por static const tipos primitivos. En su lugar, deberá tener un constructor para class test1 .

EDITAR:a continuación, verá un ejemplo de trabajo que hice en ideone.com. Tenga en cuenta algunos cambios que hice. Primero, es mejor tener el constructor de test toma un const referencia a string para evitar copiar. En segundo lugar, si el programa tiene éxito, debe return 0 no 1 (con return 1 obtiene un error de tiempo de ejecución en ideone).

#include <iostream>
#include <string>
using namespace std;
class test
{
public:
    test(const std::string& s):str(s){};
private:
    std::string str;
};
 
class test1
{
public:
    test1() : tst_("Hi") {}
    test tst_;
};
 
int main()
{
    return 0;
}

Linux
  1. ¿Prueba de shell para encontrar un patrón en una cadena?

  2. ¿Existe una forma sencilla de probar Ubuntu en portátiles nuevos antes de comprarlo?

  3. Cómo probar un script PHP

  4. Pruebe si la cadena tiene caracteres que no son espacios en blanco en Bash

  5. 'inet_pton':identificador no encontrado

Prueba simple de correo PHP

Bash concatenar cadenas

Telnet a un puerto para probar la conectividad de la red

Sustitución de cadena en Bash

Bash Scripting – Manipulación de cadenas

Cómo buscar y reemplazar texto, palabra o cadena en un archivo