几天前,我进行了C++考试,但遇到了这个问题,但发现对我来说尚不清楚,问题是:



而根据Absolute C++第五版p669定义的多态性为:



从这个定义中我可以理解,不使用虚函数就不会有多态性,不是吗?所以这个问题没有两个不同的代码片段实现,对吗?使用虚函数只有一个

我的问题是:这是一个有效的问题吗?

最佳答案


不,这与预期的答案“看起来只有虚拟函数提供c++中的多态性”无关。这个问题太狭窄了,容易引起误解。

从这个定义中我可以理解,不使用虚函数就不会有多态性,不是吗?

实际上,没有virtual函数,您就可以拥有多态性。
它称为静态多态性,查找CRTP patternSFINAE
好吧,强调后期绑定(bind)实际上缩小了动态多态性和(纯)virtual函数的问题。但是恕我直言,这仍然是一个糟糕的考试,问题太狭窄/不清楚。

关于c++ - C++中的多态性和我的考试,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35092873/

10-11 16:33