pb pointeur et déclaration de classe
Salut, j'ai beson de quelques informations sur une "subtilité" du langage.
Ce code compile :
Code:
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:
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;
} |
Ce code compile :
Code:
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;
} |
Mais ce code ne compile pas :
Code:
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;
} |
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 ?
Merci de m'éclairer