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

  FORUM HardWare.fr
  Programmation

  [C++] Question sur l'héritage

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Question sur l'héritage

n°49994
bkadoum
Posté le 31-07-2001 à 16:46:32  profilanswer
 

Je fais un petit jeu en c++ et j'essaie d'organiser un peu mes classes avec l'héritage. J'ai une classe père Item qui a 2 classes filles Mover et Anime. Maintenant je veux crée une nouvelle classe fille Character qui héritera des 2 autres classes. Comment je fais ca???
Je vais essayer de dessiner un petit arbre généalogique pour que ca soit plus compréhensible:
 
       |--->Mover---|
Item---|            |--->Character
       |--->Anime---|
 
:lol: Le dessin a l'air bizarre! Vous allez me dire 'Où est l'intérêt de faire ca?' Ben comme ca je peux avoir:
-Un Item étant seulement Mover
-Un Item étant seulement Anime
-Un Item Character étant à la fois Mover et Anime!
 
:)

mood
Publicité
Posté le 31-07-2001 à 16:46:32  profilanswer
 

n°50000
seblamb
Posté le 31-07-2001 à 16:55:26  profilanswer
 

class A{};
class B : public A {};
class C : public A{};
class D : public B, public C {};
 
dans ce cas il y aurat 2 objets A dans D
 
pour n'avaoit qu'un seul objetA  
 
class A{};
class B : public A {};
class C : public A {};
class D : public B, virtual public C {};

n°50370
bkadoum
Posté le 01-08-2001 à 15:14:32  profilanswer
 

merci de l'info. J'ai utilisé une classe de base virtuelle mais j'ai fait de cette manière:
class A {};
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {};
 
Ainsi ma classe D obtient une copie des membres de A tout en ayant celles de B et de C. J'ai aucune erreur lors de la compilation mais ca pose probleme quand je lance le programme. Faut peut-être faire quelque chose au niveau des constructeurs?
 
par ex:
a(args) {;}
b(args) : a(args) {;}
c(args) : a(args) {;}
et pour D???
 
Si quelqu'un a eu ce même cas avec ses classes please help me.
Sinon qui connaît un bon forum causant uniquement de C++?

n°50397
BENB
100% Lux.
Posté le 01-08-2001 à 16:09:28  profilanswer
 

C'est quoi ton probleme ?
si au moins tu le decrivais...

n°50402
bkadoum
Posté le 01-08-2001 à 16:17:26  profilanswer
 

ouais j'ai un peu décrit dans le premier post mais c'est bon, j'ai reussi plus besoin d'aide. Merci!

n°50404
BENB
100% Lux.
Posté le 01-08-2001 à 16:19:46  profilanswer
 

Citation :

J'ai aucune erreur lors de la compilation mais ca pose probleme quand je lance le programme.


 

Citation :

ouais j'ai un peu décrit dans le premier post mais c'est bon, j'ai reussi plus besoin d'aide. Merci!


 
:??:

n°50419
bkadoum
Posté le 01-08-2001 à 17:09:57  profilanswer
 

L'application se fermait directement à cause d'une instance qui n'avait pas été allouée avec l'opérateur new.
Comme j'avais dit le problème venait bien du constructeur. En fait il fallait appeler les 3 constructeurs des classes A, B, C pour le constructeur de D.
 
Liste des constructeurs:
 
//Constructeur de A
A()
{
pTata = new Tata();
}
 
//Constructeur de B
B() : A()
{
pTbtb = new Tbtb();
}
 
//Constructeur de C
C() : A()
{
pTctc = new Tctc();
}
 
//Constructeur de D
D() : A(), B(), C()
{
pTdtd = new Tdtd();
}
 
Comme ca lors de la construction de D, toutes les instances sont allouées et le programme tourne!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [C++] Question sur l'héritage

 

Sujets relatifs
Question pour les pros du fichier *.bat (programmation)javascript => question bete mais la je seche !
Question pour tous ![ASP] Question à la Con...
[Flash] g une question...Java et PHP votre avis et question
php: question sur les includes.[PHP] Question sur scripts ....
[ CSS ] :: héritage de "classes"Question à deux balles
Plus de sujets relatifs à : [C++] Question sur l'héritage


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR