如何在c ++中重载' - >'运算符?

Chr*_*olf 3 c++ operator-overloading

我想在另一个类周围写一个简单的包装器.一个小例子:

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

class MyClassRefernence{
   ...
   MyClass* ptr;
   MyClass& operator *();
   ...
};
Run Code Online (Sandbox Code Playgroud)

如果我现在有一些代码如下:

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

所以我的问题是:有没有办法使用更漂亮的->运算符而不是(*...).构造?

Che*_*Alf 11

MyClass* operator->() { return ptr; }
Run Code Online (Sandbox Code Playgroud)