Возвращая ссылку на класс с перегруженным приватным оператором? - PullRequest
0 голосов
/ 05 февраля 2010

Я получил класс с именем Property (из внешней библиотеки == нельзя изменить), у которого есть приватный перегруженный оператор &. Я использую этот класс в другом классе как свойство и (по соображениям здравого смысла) хотел бы вернуть ссылку на это свойство через метод Get. Однако я получил сообщение «не могу получить доступ к закрытому члену, объявленному в классе», которое я не могу обработать. Есть ли способ прогуляться по нему - без обнародования Собственности.

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

1 Ответ

2 голосов
/ 05 февраля 2010

Я могу что-то упустить, но почему бы просто не сказать:

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

Тот факт, что оператор & является частным, довольно ясно указывает на то, что вы не должны его называть.

...