多态

c – std :: optional和polymorphism

我在许多帖子中都读过StackOverflow,当使用指针并允许nullptr时,通常最好使用std::optional.但是,如果指针指的是多态类型怎么办?最好使用std::optional或指针吗?解决方法optional不适用于多态类型.它是一个值类型,多态基类在可选项中不起作用.就像将多态基类放在向量或类似容器中一样不起作用.返回一个指针.这个建议通常被称为“一般”是有原因的.

C和我考试中的多态性

所以这个问题没有两个不同的片段实现,对吧?只有一个使用虚函数我的问题是:这是一个有效的问题吗?实际上你可以在没有虚函数的情况下拥有多态性.它被称为静态多态,查找CRTPpattern和SFINAE.那么,后期绑定的重点实际上缩小了动态多态性和(纯)虚函数的问题.但恕我直言,它仍然是一个糟糕的考试和太狭隘/不明确的问题.

c – 多态性与超载有什么区别?

我理解多态并且模糊地理解重载,但是会感谢一个彻底理解两个概念来解释分类差异是什么以及是否重载是或不是一种多态的形式的人(似乎对此有不同意见).解决方法核心的多态性是关于多个事物,它们都具有一定的一致性行为,这样您可以在特定的算法或过程中替换另一种.只要它们都提供预期的界面,该过程仍然可行.重载并不是真的有这样的基础.只要命名两个或多个具有相同名称的函数,只要它们具有不同的参数列表即可.编译器根据您

c – 仅使用静态多态性的异构容器

我的目标是实现一个容器(这里是一组堆栈,每种类型一个),同时接受许多不同类型的对象.在运行时,使用void指针(或所有存储类型的公共基类)和运行时类型识别(RTTI),这将是微不足道的.由于容器将要保存的所有类型在编译时都是已知的,因此可能(或可能不)使用模板来创建这样的类.我知道boost::variant已经提供了类似的功能,但它要求存储的类型作为模板参数列出,如boost::variant

描述C中虚拟函数的最简洁但最准确的方法是什么?

被要求描述虚拟功能是什么似乎是评估基本C知识的访谈中最常见的问题之一.然而,经过几年编程C,我仍然有一种不舒服的感觉,我真的不明白如何最好地定义它们是什么.如果我咨询维基百科,我看到虚函数的定义是:“Inobject-orientedprogramming,avirtualfunctionorvirtualmethodisafunctionormethodwhosebehavIoUrcanbeov

c-typeid用于多态类型

我预计这个代码打印“Same1”和“Same2”,但它只打印“Same1”:§5.2.8/2和§5.3.1/3似乎表明我应该打印“Same2”.抓到什么和在哪里?解决方法指针不是多态类型.他们没有虚拟成员.事实上,他们没有任何成员.它们也不能从其他类型派生,也不能用作基类.因此,T*的静态和动态类型总是T*.在“Same2”行中,您将比较一个指针的typeid,而不是指向对象.因此,编译器仅查看静态类型C*和D*.它们显然不一样,必须有不同的type_info对象.

多态和重载

总结以上是DEVMAX为你收集整理的多态和重载全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

详解Java面向对象之多态的原理与实现

多态是指不同的子类在继承父类后分别都重写覆盖了父类的方法,即父类同一个方法,在继承的子类中表现出不同的形式。本文将详解多态的原理与实现,感兴趣的可以学习一下

javascript 面向对象全新理练之继承与多态

前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员、公有实例成员、私有静态成员、公有静态成员和静态类的封装。这次我们来讨论一下面向对象程序设计中的另外两个要素:继承与多态。