Question sur l'héritage [C++] - Programmation
Marsh Posté le 31-07-2001 à 16:55:26
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 {};
Marsh Posté le 01-08-2001 à 15:14:32
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++?
Marsh Posté le 01-08-2001 à 16:17:26
ouais j'ai un peu décrit dans le premier post mais c'est bon, j'ai reussi plus besoin d'aide. Merci!
Marsh Posté le 01-08-2001 à 16:19:46
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! |
Marsh Posté le 01-08-2001 à 17:09:57
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!
Marsh Posté le 31-07-2001 à 16:46:32
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---|
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!