多态性与C中的赋值运算符

问题描述 投票:-1回答:1

我看到下面说关于=赋值操作符C

有在赋值运算符隐藏多态性类型:

  1. 强制多态性 - 当我们做类型之间的隐式强制。
  2. 参数多态 - 考虑该赋值运算符在每个PL类型(原子和用户定义与structenum)所定义。

我明白有关Coercion第一的说法,但我不明白为什么,以及如何赋值运算符支持参数多态性。我可以有由此可知声明的例子吗?

编辑:这是一本书PLS的概念(用不同的语言)的。说,它具有强制多态性与隐性强制看起来像:

int number = 4.5;
// number = 4

所以说,C没有多态性是不正确的。顺便说超载也多态,和(当然)有可能在C

c polymorphism
1个回答
0
投票

正如人们经常用的技术和科学术语的情况下,有条款中使用一些多样性和解释“多态”和“多态性”。当人们说C不支持多态,它们最有可能意味着它不支持子类型多态的,因为它可能是由那些谁喜欢更广泛地使用通用术语来调用。相反,你的说法,它也不会支持特设多态,又称为超载。

即使我们接受的强制类型转换为多态性的一种形式 - 这是不是一个主流的位置 - 在采取任何C不支持多态出适当的背景的要求,你已经设定了一个稻草人。这是更可能刺激而不是讨好,而且我敢说,这不是一个明智的策略,如果你实际上是寻找,而不是试图挑起争论的答案。

至于你明显的问题,但是,

我明白了先说关于强迫,但我不明白为什么,以及如何赋值运算符支持参数多态性。我可以有由此可知声明的例子吗?

我想文指=运营商通过其左侧操作数的类型参数,作为经营者的行为会有所不同,从某种意义上说,这取决于该类型。具体地,右边的操作数被转换成左侧的操作数的类型,并分配的细节可被解释为与该类型以及变化。

但我觉得半信半疑地表征为参数多态性。参数多态的标志通常是某个地方一个明确的参数。模板是什么人通常谈论时,他们指的参数多态性在C ++和C没有模板。然而,C11可以被认为具有generic selection参数多态的有限形式。

© www.soinside.com 2019 - 2024. All rights reserved.