Salut !
J'ai un problème d'encapsulation, je n'arrive pas à trouver de moyen pour que chaque classe n'est accès qu'as ce qu'il a besoin.
Voici le code :
Quelque solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
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
30
31
32
33
34
1) Créer des accesseurs de "v_" dans "Mere" et de "value_" dans "Value".
Problème : Toute les classe qui hérite de la classe "Mere" auront un moyen d'accéder également a "value_" en utilisant les accésseurs.
2) Mettre SeulClassQuiUtiliseValue::getValue(A &a) comme amie de "Mere" et de "Value"
Problème : Cette méthode "getValue" auras un accès complet au membre privé de "Mere" alors que seulement "v_" nous intéresse.
3) Créer un accésseur de "V_" dans classe "Mere" et mettre SeulClassQuiUtiliseValue::getValue(A &a) comme amie de "Value".
Problème : Toute les classe qui hérite de la classe "Mere" auront accès a "v_".
Bien qu'ils ne puissent rien en faire directement car pas accès a "value_",
on pourrais être tenté d'utiliser ce "v_" comme argument pour une méthode de "SeulClassQuiUtiliseValue" (ou une classe dérivé).
Ainsi, la classe Value jouerait un rôle dans les classe dérivé de la classe "Mere" alors quel ne devrais pas.
Les trois solutions au quel j'ai pensé présente toutes des inconvenants...
Existerait il d'autre solutions pour résoudre ce problème ?
Et si aucune autre solution existe, quel serais la meilleur ?
Merci pour votre aide.

 

 
		
		 
         
 

 
			
			


 
			 
   



 Encapsulation pour donner des accès minimum à chaque classe
 Encapsulation pour donner des accès minimum à chaque classe
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
			 
   
  
				
 A méditer: La solution la plus simple est toujours la moins compliquée
A méditer: La solution la plus simple est toujours la moins compliquée Envoyé par koala01
 Envoyé par koala01
					
 )
) )
)
						
Partager