我们可以说“C语言运算符是多态的”吗?

时间:2011-06-04 09:45:15

标签: c

我们可以说“C语言运算符是多态的”吗? 例如,如果

int a, b;
float p, q;

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

等在组装时会产生不同的代码,因为需要进行类型转换,需要执行浮点协处理器指令以进行转换和浮点加法。因此,操作员的操作取决于他们所操作的对象。

虽然这些是隐式的,所以如果理论上这可以称为静态多态,运算符重载?

2 个答案:

答案 0 :(得分:5)

是的,从理论上讲,这可以称为静态多态或运算符重载。但由于多态性在语言定义的适用类型范围内是固定的,因此它不是一个非常有趣的多态性。

答案 1 :(得分:4)

如果我们将运算符+视为一个函数,那么它匹配多态函数的定义,因为它可以“评估或应用于不同类型的值”。所以,这是一个polymorphic函数。