Rechercher : dans
Par :

C'est quoi un heritage virtuel

Dernière réponse le 28 avr 2009 à 13:38:36 quake, le 28 avr 2009 à 01:06:52 
 Signaler ce message aux modérateurs

Bonjour,
je suis débutant en C++, et donc m'a question pourrait paraître très débile .... :-)
donc VOILA :
Qu'est ce que c'est qu'un héritage virtuel (voici un petit exemple)

class AAAAA: virtual public BBBBBB
{
********
}

MERCI BCPP

Configuration: Windows XP
chrome

Meilleures réponses pour « c'est quoi un heritage virtuel » dans :
Héritage virtuel Voir Héritage virtuel Code 7.9 : héritage virtuel #include using namespace std; class Creature { public: Creature():age(3) { cout
Java - L'héritage Voir La notion d'héritage Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de...
POO - Héritage Voir La notion d'héritage L'héritage (en anglais inheritance) est un principe propre à la programmation orientée objet, permettant de créer une nouvelle classe à partir d'une classe existante. Le nom d'"héritage" (pouvant parfois être appelé dérivation...
Créer un lecteur virtuel avec NERO VoirVous pouvez avoir besoin d'un lecteur virtuel sur votre machine pour contrôler une image .ISO, par exemple, ou simplement lire cette image (l'avantage d'un lecteur virtuel étant son silence de fonctionnement). Donc démarrez Nero StartSmart Vous...

1

redskins72, le 28 avr 2009 à 01:15:38

Tiens cela va repondre a tes question : http://www.commentcamarche.net/contents/java/javaherit.php3

Répondre à redskins72

2

 loupius, le 28 avr 2009 à 13:38:36

Non la question n'est pas débile, mais ce n'est pas un question de débutant !
La réponse est simple: dans l'exemple donné, ça ne change strictement rien; oh, je t'entends déjà poser la question: mais pourquoi mettre 'virtual' ? Ce ne peut être utilisé que dans le cas d'héritage multiple; je vais essayer d'expliquer sans rentrer dans le détail.

class A { public: int a; };
class B : virtual public A { public: int b; };
class C : virtual public A { public: int c; };
class M : public B, public C { public; int m; };

S'il n'y avait pas 'virtual', la classe M recevrait deux copies de 'int a' (l'une par B et l'autre par C).
Dans la cas présent, 'virtual' impose une unicité de 'int a'; donc &M.B::a, &M.C::a et &M.a pointent vers le même objet.
Voilà, je ne m'étendrais pas plus; c'est rarement utilisé.
Bon courage.

Répondre à loupius
Collection CommentÇaMarche.net