Bonjour !
Je ne comprends pas l'erreur que me fait mon compilateur sur ce code simplifié:
L'erreur à la compilation avec visual studio étant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #include "stdafx.h" #include <iostream> #include <vector> class A { public: const int x; A(int ival) :x(ival){}; //const A& operator =(const A & a){return a;}; }; int _tmain(int argc, _TCHAR* argv[]) { std::vector<A> levector; A a(5); levector.push_back(a);//C2582 A obja = a; return 0; }
Si on enlève les // devant const A& operator =(const A & a){return a;};
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Erreur 1 error C2582: 'operator =' fonction non disponible dans 'A' c:\program files\microsoft visual studio 8\vc\include\xutility 2726
il n'y a plus d'erreur.
Donc le problème m'échappe, je ne vois pas en quoi j'ai besoin de redéfinir l'opérateur =, qui est normalement défini par défaut.
Sachant que le problème est aussi lié au fait que x soit constant. Si x n'est plus constant, alors je n'ai plus d'erreur.
merci de votre aide
Partager