C++ problème classe / héritage / pointeurs [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
14 janvier 2007
-
Messages postés
2
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
14 janvier 2007
-
Bonjour,
Je suis en train de développer un petit jeux pour directX (mais ce n'est pas le problème ici) et pour la réalisation je vais partir sur un modèle de classes d'objet :
Une classe TObject qui contient toutes les méthodes de chargement d'objet, de position et tout.
Puis des sous classes, hérités de cette première. Par exemple TObjCharac, qui contiendra en plus les méthodes pour faire déplacer le personnage, une classe TObjItem, TObjPlace, ...
Mon problème se situe ici. Le constructeur de la classe TObject est celui ci :
TObject(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName);

Ma classe TObjCharac est déclarée de cette façon :
class TObjCharac : public TObject { ... };
Son constructeur :
TObjCharac(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName);

Sa définition :
TObjCharac::TObjCharac(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName) {                              
    TObject(p_d3dDevice, p_strFileName);                                                                 
    ...
};

Je développe sous Dev-C++ et j'obtient le message
no matching function for call to `TObject::TObject()'
candidates are: TObject::TObject(const TObject&)
                 TObject::TObject(IDirect3DDevice9*, CHAR*)

Donc ok je comprend bien qu'il n'arrive pas a lié les deux et je pense que c'est à cause des paramètres, ce doit être a cause des pointeurs ou quoi ça voilà justement je ne sais plus je suis perdu à ce niveau là ^^
Une petite aide?

Merci d'avance

2 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
TObjCharac::TObjCharac(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName) {                              
    TObject(p_d3dDevice, p_strFileName);
Le compilateur croit que tu appelles une fonction nommée TObject
Voici ce qu'il faut écrire:

TObjCharac::TObjCharac(IDirect3DDevice9* p_d3dDevice, CHAR* p_strFileName)
 : TObject(p_d3dDevice, p_strFileName);
{
  ...
}

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
2
Date d'inscription
mardi 15 février 2005
Statut
Membre
Dernière intervention
14 janvier 2007

Merci :)