Как перегрузить оператор '->' в c ++? - PullRequest
3 голосов
/ 09 марта 2012

Я хочу написать простую обертку вокруг другого класса. Небольшой пример:

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

Итак, мой вопрос: есть ли способ использовать гораздо более симпатичный оператор -> вместо конструкции (*...).?

1 Ответ

11 голосов
/ 09 марта 2012
MyClass* operator->() { return ptr; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...