2012-03-09 4 views
3

다른 클래스 주위에 간단한 래퍼를 작성하고 싶습니다. 작은 예 :C++에서 '->'연산자를 오버로드하는 방법은 무엇입니까?

class MyClass { 
    ... 
    int someMember(); 
    ... 
}; 

class MyClassRefernence{ 
    ... 
    MyClass* ptr; 
    MyClass& operator *(); 
    ... 
}; 

나는 몇 가지 코드처럼 지금있는 경우 다음

MyClassReference ref; 
... // Init the ref and the pointer ptr. 
int a = (*ref).someMember(); // this works but is nasty 
int b = ref->someMember(); // Compile error 

그래서 내 질문은 : 대신 (*...). 건축 훨씬 더 예쁜 -> 연산자를 사용하는 방법이 있나요 ?

답변

11
MyClass* operator->() { return ptr; } 
+0

감사합니다. 나는'operator *()'로 충분하다고 생각했다. –

관련 문제