我们可以说“C语言运算符是多态的”吗? 例如,如果
int a, b;
float p, q;
a+b;
a+p;
p+q;
等在组装时会产生不同的代码,因为需要进行类型转换,需要执行浮点协处理器指令以进行转换和浮点加法。因此,操作员的操作取决于他们所操作的对象。
虽然这些是隐式的,所以如果理论上这可以称为静态多态,运算符重载?
答案 0 :(得分:5)
是的,从理论上讲,这可以称为静态多态或运算符重载。但由于多态性在语言定义的适用类型范围内是固定的,因此它不是一个非常有趣的多态性。
答案 1 :(得分:4)
如果我们将运算符+
视为一个函数,那么它匹配多态函数的定义,因为它可以“评估或应用于不同类型的值”。所以是,这是一个polymorphic函数。