Bonjour !

Je ne comprends pas l'erreur que me fait mon compilateur sur ce code simplifié:
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;
}
L'erreur à la compilation avec visual studio étant:
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
Si on enlève les // devant const A& operator =(const A & a){return a;};
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