2010-02-05 5 views
0

J'ai une classe appelée propriété (de la bibliothèque externe == ne peut pas être modifiée) qui a l'opérateur & surchargé privé. J'utilise cette classe dans une autre classe en tant que propriété et (pour des raisons de santé mentale) je voudrais retourner une référence à cette propriété à travers la méthode Get. Cependant, j'ai obtenu l'erreur 'Je ne peux pas accéder au membre privé déclaré en classe' que je ne peux pas gérer. Existe-t-il un moyen de contourner le problème sans rendre public le bien public?Renvoi à la classe avec un opérateur privé et un opérateur surchargé?

// Some external class. 
class Property 
{ 
    Property* operator&() const; 
}; 

class MyClass 
{ 
protected: 
    Property m_Property; 

public: 

    // error C2248: 'Property::operator &' : cannot access private member declared in class 'Property' 
    const Property& GetProperty() const 
    { 
     return *& this->m_Property; 
    } 
}; 

Répondre

2

Je peut manquer quelque chose, mais pourquoi ne pas dire simplement:

const Property& GetProperty() const 
{ 
    return this->m_Property; 
} 

Le fait que l'opérateur est privé & assez indique clairement que vous n'êtes pas censé l'appeler.

+0

Vous avez raison, bien sûr. Trop de café je suppose;) Merci. – mslaf

Questions connexes