Une question de QCM

Une question de QCM - C++ - Programmation

Marsh Posté le 12-05-2011 à 00:16:44    

bonjour,
 
J'aimerais savoir si pour vous, vous comprenez cette affirmation comme vraie ?
 

Un objet peut accéder librement aux membres private d'un autre objet de même  
classe.


 
merci par avance

Reply

Marsh Posté le 12-05-2011 à 00:16:44   

Reply

Marsh Posté le 12-05-2011 à 00:40:57    

toi , tu en penses quoi ? et pourquoi ?  
 
( on ne fait pas les devoirs )


---------------

Reply

Marsh Posté le 12-05-2011 à 10:05:23    

flo850 a écrit :

toi , tu en penses quoi ? et pourquoi ?

 

( on ne fait pas les devoirs )

 

(ce n'est pas un devoir  :sarcastic:) Ma question était surtout posée comme ça pour ne pas influencer, enfin bon.

 

Personnellement, je trouve que la question est mal posée ou alors je ne la comprend pas bien. Donc je dirais non...Car si c'est deux instances d'un objet, l'un est l'autre ne peuvent pas accéder aux membres private de l'autre.

 

Pourtant, la correction indique que c'est vrai.

 

Ou alors, c'est qu'ils parlent des membres de la classe, mais dans ce cas ça n'a pas vraiment de sens, car c'est une classe donc pas une instance.

 

Merci pour vos coms.

Message cité 1 fois
Message édité par in_your_phion le 12-05-2011 à 10:11:14
Reply

Marsh Posté le 12-05-2011 à 10:11:20    

pour la visibilité, il n'y a pas de différences entre instance et type, donc les autorisations d'acces se font forcement par le type.  
 
c'est donc vrai :o
 
ce qui permet de faire des equals au passage :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 12-05-2011 à 10:29:31    

kadreg a écrit :

pour la visibilité, il n'y a pas de différences entre instance et type, donc les autorisations d'acces se font forcement par le type.  
 
c'est donc vrai :o
 
ce qui permet de faire des equals au passage :o


 
salut,
est ce que tu pourrais expliciter pour les equals ?
 
autrement, si je fais ça :

Code :
  1. MaClasse a, b;
  2. a.m_unevariable_privee; //c'est pas possible, non? et pourtant c'est un objet


 
et si j'ai b.m_unevariable_privee : bien que ce soit le même nom de membre, la variable est à un emplacement mémoire différent de a.m_unevariableprivee  
 
donc je vois pas bien la question  :pt1cable: Car si c'est juste MaClasse, c'est une classe, donc y'a pas d'objet ... non ???
 
merci

Reply

Marsh Posté le 12-05-2011 à 10:30:49    

in_your_phion a écrit :


 
(ce n'est pas un devoir  :sarcastic:) Ma question était surtout posée comme ça pour ne pas influencer, enfin bon.
 
Personnellement, je trouve que la question est mal posée ou alors je ne la comprend pas bien. Donc je dirais non...Car si c'est deux instances d'un objet, l'un est l'autre ne peuvent pas accéder aux membres private de l'autre.  
 
Pourtant, la correction indique que c'est vrai.
 
Ou alors, c'est qu'ils parlent des membres de la classe, mais dans ce cas ça n'a pas vraiment de sens, car c'est une classe donc pas une instance.
 
Merci pour vos coms.


 
 
un exemple :  
 

Code :
  1. void
  2. A::fonction1( A * _myobject )
  3. {
  4. _myobject->fonction2(); // fonction2 est déclarée private
  5. }


 
Pour toi, cela ne devrait pas être autorisé dans le cas où this et _myobject sont différents. Sauf qu'il peuvent être identiques, et le compilateur ne peut pas le savoir.  
 
Comme cela a été dit ci-dessus,  le mot clé private détermine l'accès ou non en se basant sur le type uniquement indépendamment des différentes instances d'objet.

Reply

Marsh Posté le 12-05-2011 à 10:45:18    

merci pour ta réponse.

 

oh ? effectivement je ne savais pas que c'était possible. Tu sais s'il y a une documentation sur ça ?

 

et ça, c'est possible ?

 
Code :
  1. void
  2. A::fonction1( A _myobject )
  3. {
  4. _myobject.fonction2(); // fonction2 est déclarée private
  5. }
 

...?

Message cité 1 fois
Message édité par in_your_phion le 12-05-2011 à 10:46:48
Reply

Marsh Posté le 12-05-2011 à 10:49:39    

in_your_phion a écrit :

merci pour ta réponse.
 
oh ? effectivement je ne savais pas que c'était possible. Tu sais s'il y a une documentation sur ça ?
 
et ça, c'est possible ?
 

Code :
  1. void
  2. A::fonction1( A _myobject )
  3. {
  4. _myobject.fonction2(); // fonction2 est déclarée private
  5. }


 
...?


 
 
Bien sur.
 
Par contre tu passes une copie de l'objet qui sera détruite à la fin de l'appel de la fonction. Ce n'est peut être pas ce que tu souhaites faire.

Reply

Marsh Posté le 12-05-2011 à 11:03:08    

ok, merci!
 
oui, c'était juste pour l'exemple, car tu dis que "le compilateur ne peut pas le savoir." et je me demandais si c'était lié au pointeur ou non.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed