attendu identificateur avant constante de chaîne
Avoir un programme comme ceci:
#include <iostream>
#include <string>
using namespace std;
class test
{
public:
test(std::string s):str(s){};
private:
std::string str;
};
class test1
{
public:
test tst_("Hi");
};
int main()
{
return 1;
}
...pourquoi suis-je la suite quand j'execute
g++ main.cpp
main.cpp:16:12: error: expected identifier before string constant
main.cpp:16:12: error: expected ‘,’ or ‘...’ before string constant
Vous devriez vraiment apprendre à toujours compiler avec
g++ -Wall -g
OriginalL'auteur rahman | 2012-04-07
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas initialiser tst_ où vous déclarez. Ceci ne peut être fait pour static const types primitifs. Au lieu de cela, vous aurez besoin d'avoir de constructeur pour test1.
EDIT: voici un exemple de travail en ideone.com. Note quelques changements que j'ai fait - d'abord il est préférable d'avoir le constructeur de test prendre const référence à la chaîne pour éviter la copie. De deuxième si le programme réussit, il faut retourner 0 non 1(avec retour 1, vous obtenez erreur d'exécution dans le ideone)
OriginalL'auteur Ivaylo Strandjev