Bonjour,
J'utilise visual C++ express 2008 comme IDE. J'ai des difficultés à déclarer une instance d'une classe A dans une classe B en utilisant le constructeur de A.
Je déclare et définit une classe A:
Pour déclarer une instance de A dans la définition d'une classe B, j'utilise le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 class ClassA { private: int a; public: ClassA(int a_init); }; ClassA::ClassA(int a_init = 1) { a = a_init; }
La ligne "ClassA myClassAinB(2);" génére une erreur de compilation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class ClassB { ClassA myClassAinB(2); };
error C2059: erreur de syntaxe : 'constant'
- Le code compile si A n'a pas de constructeur ou un constructeur sans paramètres.
- "ClassA myClassA(2);" dans le main compile.
- Le code ne compile pas (même erreur) si je remplace le 2 de myClassAinB(2) par une variable, une constante...
J'ai recherché sur la faq et google mais je n'ai pas trouvé d'info sur la manière de déclarer une instance avec constructeur dans une autre classe.
Je pense que cela vient d'une syntaxe particulière que je ne connais pas...
Partager