Что-> * оператор в C++?

На самом деле лучшее дополнение для разработчиков к IE было бы Скрипач . Это имеет много функций, которыми обладают другие браузеры.

21
задан Yakk - Adam Nevraumont 13 May 2014 в 20:45
поделиться

3 ответа

Перегруженный оператор -> * является бинарным оператором (тогда как . * не перегружен). Он интерпретируется как обычный бинарный оператор, поэтому в вашем исходном случае, чтобы вызвать этот оператор, вам нужно сделать что-то вроде

A a;
B* p = a->*2; // calls A::operator->*(int)

. То, что вы читаете в ответе Петра, применяется к встроенным операторам , не к вашему перегруженному. То, что вы вызываете в добавленном вами примере, также является встроенным оператором , а не вашим перегруженным. Чтобы вызвать перегруженного оператора, вам нужно сделать то, что я делаю в моем примере выше.

10
ответ дан 29 November 2019 в 21:38
поделиться

Как и любой другой оператор, вы также можете вызвать его явно:

a.operator->*(2);
1
ответ дан 29 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: