gpt4 book ai didi

c++ - 多态性c++

转载 作者:可可西里 更新时间:2023-11-01 18:21:21 26 4
gpt4 key购买 nike

有些书上写着声明或继承虚函数的类称为多态类。

B 类没有任何虚函数,但通过了多个 is-a 测试。

C 类有一个虚函数但不继承。

class A {};
class B : public A {};

class C
{
public:
virtual void f () {}
};

B 类还是 C 类是多态的?

最佳答案

2003: 10.3/1 明确指出:

A class that declares or inherits a virtual function is called a polymorphic class.

你自己一个字一个字的说,所以我不太明白问题是什么。

C(及其后代,如果添加的话)是多态的; AB 不是。


请注意,在更广泛的 OOP 意义上,您始终可以执行一些“多态性”,因为 C++ 始终允许您向上转型;因此所有继承的对象都可以被视为不同(但相关)的类型。

但是,术语“多态”在 C++ 中的定义略有不同,它更多地与您是否也可以向下转型有关。如果您不想像 C++ 标准那样令人困惑,您可以将此称为“动态多态性”。

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com