GNU/Linux >> Tutoriels Linux >  >> Linux

identifiant attendu avant la constante de chaîne

Il existe une autre façon plus simplifiée de faire ce que vous voulez :modifiez simplement votre déclaration de test tst_("Hi"); à test tst_{"Hi"}; et ça marchera. Vous trouverez ci-dessous le code modifié et il fonctionne comme prévu.

#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;
}

Notez que je viens de changer test tst_("Hi"); à test tst_{"Hi"}; et tout le reste est exactement pareil. Juste pour confirmer que cela fonctionne, j'ai ajouté un cout pour vérifier qu'il initialise correctement la variable str. Je pense que cette solution à une ligne est plus élégante (du moins pour moi) et à jour avec la nouvelle norme.


Vous ne pouvez pas initialiser tst_ où vous le déclarez. Cela ne peut être fait que pour static const types primitifs. Au lieu de cela, vous aurez besoin d'un constructeur pour class test1 .

EDIT :ci-dessous, vous verrez un exemple de travail que j'ai fait dans ideone.com. Notez quelques modifications que j'ai apportées. Tout d'abord, il est préférable d'avoir le constructeur de test prendre un const référence à string pour éviter la copie. Deuxièmement, si le programme réussit, vous devez return 0 pas 1 (avec return 1 vous obtenez une erreur d'exécution dans 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. Test de messagerie PHP simple

  2. Telnet à un port pour tester la connectivité réseau

  3. Shell teste si la chaîne de plusieurs lignes contient le modèle spécifié dans la dernière ligne ?

  4. Existe-t-il un moyen simple de tester Ubuntu sur de nouveaux ordinateurs portables avant de l'acheter ?

  5. Tester une tâche cron hebdomadaire

Chaînes de concaténation bash

Remplacement de chaîne dans Bash

Script Bash - Manipulation de chaînes

Comment rechercher et remplacer du texte, un mot ou une chaîne dans un fichier

Teste si la chaîne contient des caractères non blancs dans Bash

'inet_pton' :identifiant introuvable