Salut, j'ai beson de quelques informations sur une "subtilité" du langage.
Ce code compile :Ce code compile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #include "syn_elt.hpp" int main(int argc, char *argv[]){ SYN_ELT *test = new SYN_ELT(1, 2, 3, "test"); return 0; }Ce code compile :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "syn_elt.hpp" int main(int argc, char *argv[]){ SYN_ELT *test; test = new SYN_ELT(1, 2, 3, "test"); return 0; }Mais ce code ne compile pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 #include "syn_elt.hpp" int main(int argc, char *argv[]){ SYN_ELT test = SYN_ELT(1, 2, 3, "test"); return 0; }Plus précisément le dernier bout de code tente d'appeler le constructeur SYN_ELT() dès la déclaration. Ce constructeur n'est pas défini. Cela signifie t-il qu'on doit obligatoirement utiliser un pointeur pour déclarer une classe et appeler le constructeur plus tard ? Quelle est la raison de ce comportement ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #include "syn_elt.hpp" int main(int argc, char *argv[]){ SYN_ELT test; test = SYN_ELT(1, 2, 3, "test"); return 0; }
Merci de m'éclairer
Partager