Bonjour, j'ai besoin d'une petite aide pour être sur que je fasse les choses de la bonne maniere.
Alors, à la base, j'ai une classe "cA" qui posséde quelques données membres (privées).
j'ai besoin de créer des classe cB et cC qui partagerons la plus grande partie des methodes de cA, ainsi que toutes les données membre (m1,m2...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class cA { //... private: int m1,m2,m3; };
J'ai donc envie de faire une classe de base cbase, et de faire cA, cB et cC qui derive de cbase. Jusque là, pas de problème.
et les classes filles :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class cbase { public: cbase(); // constructeur virtual ~cbase(); // destructeur void meth1() virtual void meth2(); private: int m1,m2,m3; };
bon,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 class cA : public cbase { public: cA(); // constructeur virtual ~cA(); // destructeur void meth2(); }; class cB : public cbase { public: cB(); // constructeur virtual ~cB(); // destructeur void meth2(); void meth4(); }; class cC : public cbase { public: cC(); // constructeur virtual ~cC(); // destructeur void meth2(); };
mais maintenant ce que j'ai besoin c'est de pouvoir "copier" un cA vers un cB (ou un c[A|B|C] vers un c[A|B|C] ) comme toutes les doneés membres sont privée, j'ai pas envie de faire des getter et setter pour chacunes (j'en bien une 10aine)
voilà ce que je voudrait bien faire :
bon, alors je sais qu'il existe la notion de contructeur de recopie, c'est exactement ca que je cherche a faire, (oui j'aurai pu le dire tout de suite) mais je ne sais pas comment le mettre en oeuvre dans le cadre de classe dérivé (note:a priori je n'instancierai pas de cbase, que des cA,cB et cC)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 cbase* truc; truc = new cA; //... // on va "echanger" truc cA en truc cB... cbase * tmp = new cB; ???? // <--ici une ligne pour "copier" les données privées de truc dans tmp delete truc; // plus besoin de truc. truc=tmp; // maintenant truc est un cB tmp=NULL;
quelqu'un pour me donner un coups de main ?
Merci.
Partager