2010-02-05 8 views
0

private 오버로드 된 & 연산자가있는 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; 
    } 
}; 

답변

2

내가 모르는 뭔가가 될 수 있지만, 왜 단순히 말 :

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

운영자 & 꽤 명확하게 개인이라는 사실은 당신이 전화를 안 나타냅니다.

+0

물론 맞습니다. 너무 많은 커피;) 고마워. – mslaf

관련 문제