Можем ли мы сказать, что «операторы языка C полиморфны»? - PullRequest
2 голосов
/ 04 июня 2011

Можно ли сказать, что «операторы языка C полиморфны»?Например, если

int a, b;
float p, q;

a+b;
a+p;
p+q;

и т. Д. Будет генерировать другой код при сборке, так как необходимо преобразование типа, необходимо выполнить инструкцию сопроцессора с плавающей запятой для выполнения преобразования и добавления с плавающей запятой.Таким образом, операторы работают по-разному в зависимости от объектов, с которыми они действуют.

Хотя они неявны, поэтому, если это теоретически можно назвать статическим полиморфизмом, перегрузка операторов?

Ответы [ 2 ]

5 голосов
/ 04 июня 2011

Да, теоретически это можно назвать статическим полиморфизмом или перегрузкой операторов. Но поскольку полиморфизм фиксируется в диапазоне применимых типов по определению языка, это не очень интересный полиморфизм.

4 голосов
/ 04 июня 2011

Если мы считаем оператор + функцией, то он соответствует определению полиморфной функции, потому что он может «оценивать или применяться к значениям различных типов». Так что да , это полиморфная функция.

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