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.
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 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
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.
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; }
De plus l'erreur mentionne la classe CObject que je n'utilise pas.
Avez vous une id�e ?
Partager