Bonjour,
j'ai deux classes
je voudrais créer un objet de type C dans la classe B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { C *objet ; } class B { A * objet }
Bonjour,
j'ai deux classes
je voudrais créer un objet de type C dans la classe B
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { C *objet ; } class B { A * objet }
Bonjour,
Et alors quel est le problème ?
Comme ca :
Cependant je ne suis pas certain que cela réponde à ta question...
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
25
26
27
28
29 class C {}; class A { C *objet; public: A() : objet(new C()) {} }; class B { A * objetA; C* objetC; public: B() : objetA(new A()), objetC(new C()) {} }; int main() { A a; B b; C c; }
C'est pas forcement ça que je cherche, je voudrais instancier un objet dans la classe B avec un passage par la classe A
J'ai trouvé la réponde
un seul appel à la classe A suffit et on peut acceder à toutes les fonctions de la classe C avec un simple objet->objet->fonctionC();
Bonjour, les new et les pointeurs sont clairement inutiles :O (On n'est ni en Java, ni en C)
Pourrais-tu être plus explicite ?
Comme rien nous indique si l'instance de C doit être construite à la construction d'un A et détruite à la destruction du même A.
On ne sait pas non-plus, s'il veut changer ou non de C "en cours de route".
Donc je ne vois pas pourquoi les pointeurs et les news seraient inutiles.
L'utilisation dans le main... j'ai du mal à trouver "les delete qui vont bien".
On peut très bien changer "en cours de route" sans pointeur. Qui te dit que C n'a pas une sémantique de valeur ? (par exemple)
Complexifier inutilement le programme n'a que peu d'utilité à mes yeux :p
---
Bref, on peut se répondre stupidement et longuement de cette façon, on l'a déjà fait
Je pense que les auteurs des posts précédents n'ont pas pas vraiment compris l'allocation dynamique, quand l'utiliser, comment l'utiliser, etc.
---
(Code ni testé, ni "assumé")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class B { public: A un_a; C un_c; B() : un_a(/*...*/), un_c(/*...*/) { } void f() { /* un_a.methode_de_A(); */ } };
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager