相关疑难解决方法(0)

C++中的多态性

据我所知:

C++提供了三种不同类型的多态性.

  • 虚拟功能
  • 函数名称重载
  • 运算符重载

除了上述三种类型的多态性外,还存在其他种类的多态性:

  • 运行
  • 编译时间
  • ad-hoc多态性
  • 参数多态性

我知道运行时多态性可以通过虚函数实现 ,静态多态可以通过模板函数实现

但对于另外两个

ad-hoc多态性:

如果可以使用的实际类型的范围是有限的,并且必须在使用之前单独指定组合,则这称为ad-hoc多态.

参数多态性:

如果所有代码都是在没有提及任何特定类型的情况下编写的,因此可以透明地使用任意数量的新类型,这称为参数多态.

我几乎无法理解他们:(

任何人都可以用一个例子解释他们两个吗?我希望这些问题的答案对他们大学的许多新的消息有所帮助.

c++ polymorphism c++-faq

124
推荐指数
2
解决办法
5万
查看次数

C++模板(泛型编程)与多态?

我想通过说它与范式相关而开始这个问题,我只想澄清一些概念.所以我已经用Python编程了大约两年了,把我的脚趾浸入Java但不是太多,我想深入研究C++.我之前使用过它,但不适用于涉及大量设计的大型项目.

当我第一次开始探索它时,我相信它与Java类似地解决了OOP,其中所有东西都必须实现一个接口.然后我碰到了模板的概念,我立即将其作为一种解决方法,为原型(整数,浮点数)提供多态性行为,而这些原语并没有实现它(基本上是Python通过鸭子输入而没有形式接口).但我很快发现模板用于为非原始类型提供相同的行为.

所以我的问题是:在模板中使用经典多态性的原因是什么,在C++社区中这是什么一般方法?

编辑刚刚发现几乎解决了这个问题(静态多态性确实需要围绕这个术语).

c++ oop templates

6
推荐指数
1
解决办法
6254
查看次数

标签 统计

c++ ×2

c++-faq ×1

oop ×1

polymorphism ×1

templates ×1