Bonjour,
je ne comprends pas pourquoi avec le code suivant :
j'ai l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 struct Test { int _a; int _b; Test(int a, int b) : _a(a), _b(b) {} }; Test T(1, 2); std::map<int, Test> M; M[0] = T;
Alors que si je redéfinis mon constructeur de struct ainsi :error C2512: 'Test::Test' : no appropriate default constructor available
d:\program files\microsoft visual studio\vc98\include\map(93) : while compiling class-template member function 'struct Test &__thiscall std::map<int,struct Test,struct std::less<int>,class std::allocator<struct Test> >::operator [](const int
Je n'ai plus de problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 struct Test { int _a; int _b; Test(int a=0, int b=0) : _a(a), _b(b) {} };
Pourquoi faut-il absolument un constructeur par défaut ?
Merci par avance.
Partager