Bonsoir � tous.

J'ai l'erreur de compilation suivante : error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject' lorsque je tente d'utiliser un tableau
d'objet d�fini avec typedef. Je m'explique, j'ai une classe Calibre toute simple qui impl�mente un constructeur de recopie et un constructeur d'affectation.
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
class AFX_EXT_CLASS Calibre
{
public:
	Calibre();
	Calibre(const Calibre& calibre);
	Calibre& operator = (const Calibre& calibre);
	virtual ~Calibre();
 
	CString GetCode() const { return m_strCode; }	
	CString GetLibellé() const { return m_strLibellé; }
 
	void SetCode (const CString& code) { m_strCode = code; }	
	void SetLibellé (const CString& libellé) { m_strLibellé = libellé; }
 
private:
	CString m_strCode;
	CString m_strLibellé;
};
 
typedef CArray<Calibre, Calibre&> ListCalibres;      // La déclaration ne pose pas de problème
Ensuite dans une autre classe j'aimerai qu'une fonction me retourne une liste de calibre.
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
25
26
27
28
29
30
31
class AFX_EXT_CLASS CalibreManager
{
public:
	CalibreManager(FbConnexion *pDatabase = NULL);
	~CalibreManager();
 
	void Select();
	ListCalibres Select2();
 
private:
	FbConnexion *m_pDatabase;
	CArray<Calibre, Calibre&> m_listCalibres;
};
 
// Dans mon fichier cpp
 
// Select() => rempli une liste de calibre définie comme variable membre de ma classe CalibreManager
void CalibreManager::Select()
{
       Calibre calibre;
       // Je récupère mes données dans une base de données Firebird
       // et je rempli une liste définie comme variable membre de ma classe
       m_listCalibres.Add(calibre);  // Ok, rempli bien ma liste
}
 
ListCalibres CalibreManager::Select2()
{
       ListCalibres lstCalibres;    // Erreur de compilation C2248 ?
 
       return lstCalibres;
}
Je ne vois pas mon erreur, la variable m_listCalibres d�finie sans typedef se rempli bien alors qu'avec une d�finition "globale" du type typedef cela ne fonctionne pas.
De plus l'erreur mentionne la classe CObject que je n'utilise pas.

Avez vous une id�e ?