0 votes

Renvoyer une référence à une classe avec un opérateur & privé surchargé ?

J'ai une classe appelée Property (provenant d'une bibliothèque externe == ne peut pas être modifiée) qui a un opérateur & privé surchargé. J'utilise cette classe dans une autre classe en tant que propriété et (pour des raisons de bon sens) j'aimerais retourner une référence à cette propriété via la méthode Get. Cependant, j'ai reçu l'erreur "cannot access private member declared in class" que je ne peux pas gérer. Existe-t-il un moyen de contourner cette erreur - sans rendre la propriété publique.

// 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;
    }
};

2voto

Je rate peut-être quelque chose, mais pourquoi ne pas dire simplement :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X