返回对具有重载私有和类的类的引用运营商?

时间:2010-02-05 11:17:16

标签: c++ reference operators private operator-keyword

我有一个叫做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 个答案:

答案 0 :(得分:2)

我可能会遗漏一些东西,但为什么不简单地说:

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

运营商&很私密很清楚地表明你不应该叫它。