Salut !
J' ai 2 classe de base: VFILE et VTEXTURE. VTEXTURE est une classe singleton. J' essaye d' utiliser le tout dans une class DATA qui utilise le polymorphisme. Mais, problème, les methodes des classes que je voulais utiliser polymorphiquement ont des prototypes differents !
Pour resoudre ce problème, j' ai penssé à la surcharge des methodes. Je m' explique:
Mais le compilateur me mets un mesage assez incomprehensible:
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 class DATA { public: virtual void init(int) = 0; virtual void init(float) = 0; virtual ~DATA() { }; }; class VFILE : public DATA { public: void init(int); }; class VTEXTURE : public DATA { public: void init(float); static VTEXTURE* getInstance(); private: VTEXTURE() { }; static VTEXTURE *instance; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 VTEXTURE.cpp: Dans static member function « static VTEXTURE* VTEXTURE::getInstance() »: VTEXTURE.cpp:10: error: cannot allocate an object of type `VTEXTURE' VTEXTURE.cpp:10: error: because the following virtual functions are abstract: DataManager.h:12: error: virtual void DataManager::init(int)
Merci d' avance.
Partager