typedef и перегрузка операторов в C ++ - PullRequest
7 голосов
/ 16 мая 2010

Предположим, я ввожу определение целочисленного или целочисленного массива или любого известного типа:

typedef int int2

Затем я перегружаю оператор * для пар int2, теперь, если я инициализирую переменные a и b как int. Тогда будут ли мои * между a и b перегружены *?

Как мне добиться перегрузки int и при этом также использовать * для int такими, какие они есть. Должен ли я создать новый тип?

Ответы [ 3 ]

9 голосов
/ 16 мая 2010

Если вы говорите о C ++:
Операторские перегрузки должны принимать хотя бы один аргумент пользовательского типа. typedef ничего не меняет, поскольку не вводит новый тип и предоставляет только синоним.

5 голосов
/ 16 мая 2010

Вам нужен Сильный Typedef .

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

http://www.boost.org/doc/libs/1_42_0/boost/strong_typedef.hpp

5 голосов
/ 16 мая 2010

C не допускает перегрузки оператора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...