2012-03-09 28 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 *()'就足够了。 – 2012-03-09 12:44:06