Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5017 connectés 

 


Dernière réponse
Sujet : [résolu][poo/c++] héritage, constructeur et destructeurs
farib ca y est, je usis confronté au prob
 
constructeur de cOpenGl :
 
cOpenGl(void * Handle);
 
le constructeur de cTetris, classe dérivée de cOpenGl, n'a lui pas besoin de parametres
 
masi comment appeler les bons constructeurs, c'est à dire les deux constructeurs ?
d'abord
 
cOpenGl(Handle);
puis  
cTetris();
 avec éventuellement des paramtres si vous me dites qu'il en faut pour que le compilateur s'y retrouve
 
acutellement, bcp n'arrive pas, il dit impossible de trouver un constructeur par défaut
 
 
 
soluce :
cTetris::cTetris(void * Handle) : cOpengl(Handle)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
farib ca y est, je usis confronté au prob
 
constructeur de cOpenGl :
 
cOpenGl(void * Handle);
 
le constructeur de cTetris, classe dérivée de cOpenGl, n'a lui pas besoin de parametres
 
masi comment appeler les bons constructeurs, c'est à dire les deux constructeurs ?
d'abord
 
cOpenGl(Handle);
puis  
cTetris();
 avec éventuellement des paramtres si vous me dites qu'il en faut pour que le compilateur s'y retrouve
 
acutellement, bcp n'arrive pas, il dit impossible de trouver un constructeur par défaut
 
 
 
soluce :
cTetris::cTetris(void * Handle) : cOpengl(Handle)
farib pour le parametre, si je fais new cTetris(Handle), ca marchera nickel ?
gm_superstar Ben de toute façon, l'appel des constructeurs se fait normalement dans l'ordre de la hiérarchie de tes classes :
 
cTetris::cTetris(HDC Handle)
 : opengl(Handle)
{
...
}
 
Pour le destructeur, c'est pareil, les appels aux destructeurs se font dans l'ordre inverse de la hiérarchie de tes classes. Donc d'abord la classe fille, puis la classe mère.
juju-le-barbare c'est tout simple tu utilise les listes d'initialisation !
 
@++
farib je fais une classe opengl d'utilitaires  que je dérive pour ma classe de jeu, l'idée  étant plusd'utiliser les popriétées exitantes de la classe meres que de dériver....  
 
j'ai donc

Code :
  1. class opengl
  2. {
  3. public:
  4. opengl(HDC MonDC)
  5. {GetDC (trucmuche) // fonctions classiques d'initialisation d'opengl
  6. }
  7. ~opengl()
  8. {ReleaseDC(trucmuche) ;//fonctions classiques de fermetrure opengl
  9. }
  10. void AfficherCube( int X , int Y,TPiece Piece) //primitive utilse pour mon jeu
  11. };
  12. class cTetris: public opengl {
  13. public:
  14. cTetris() //fonctions d'initialisation ;-)
  15. ~cTetris();
  16. };


 
comment faire, si possible, pour qu'a la création de mon objet Tetris = new cTetris(Handle);
 
d'abord le constructeur de la classe mere soit appelé,avec le parametre, pusi el constructeur de la classe fille, sans parametres
 
et a la destruction d'abord le destructeur de la fille puis celui de la mere ?
 
(si possible)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)