Salut à tous,
considérons le code suivant :
Si je commente la ligne 10 correspondant à l'appel de la méthode f, le code compile parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 struct A { A(){ cout << "A()" << endl; } void f() { cout << "f()" << endl; } }; int main(void) { A a(); a.f(); return 0; }
1)Le message "A()" ne s'affiche pas, ainsi quel constructeur est appelé?, un constructeur par défaut généré automatiquement par le compilateur?
2)Si maintenant je décommente la ligne 10, le code ne compile plus. Le compilateur m'affiche l'erreur suivante :
request for member 'f' in 'a', which is of non-class type 'A()'
Le code est facilement corrigible, mais j'aimerais savoir quel est ce comportement? est ce prévu par la norme?
Partager