0

プライベートなオーバーロードされた & 演算子を持つ 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;
    }
};
4

1 に答える 1

2

私は何かが欠けているかもしれませんが、単に言ってみませんか:

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

operator& が非公開であるという事実は、それを呼び出してはならないことを明確に示しています。

于 2010-02-05T11:20:11.120 に答える