Bonjour,
Dans le livre de Scott Meyers à l'item 26, on a le code suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
class B;//forward déclaration for class B
class A{
private:
int o;
public:
A(const B& X); //an A can be constructed from a B
};
class B{
private:
int o;
public:
operator A() const;//a B can be converted to an A
}; |
On voit que le constructeur par copie de A permet de construire un objet A a partir d'un objet B. Alors j'ai voulu définir ce constructeur de A
comme ceci:
mais bien sur, o étant privé, on ne peut pas accéder aux données membres de B dans une fonction de la classe A.
Je ne veux pas faire de classe dérivée, et déclarer les membres de B comme protected (ou l'inverse).
Alors y a t il un moyen pour acceder à l'élément o de l'objet-argument autrement que par un accesseur déclaré comme ceci dans la classe A:
friend int getteur (const B& );
et défini comme ceci dans la classe B:
int getteur(const B& X){return X.o;};
Merci
Partager