"多态基类"是C++标准的一部分吗?

Nay*_*iya 1 c++

对于具有虚函数的低音类通常称为"多态基类".在这种情况下Car

class Car
{
 virtual void drive(){std::cout << "drive right";}
};

class EuropeCar: public Car
{
 void drive(){std::cout << "drive left";}
}
Run Code Online (Sandbox Code Playgroud)

是C++标准polymorphic base class的一般俚语pure abstract class还是其中的一部分?

Yuu*_*shi 6

标准特别提到了多态类,例如,在10.3.1中:

虚函数支持动态绑定和面向对象的编程.声明或继承虚函数的称为多态类.

它还讨论了抽象类纯虚函数,如10.4.2中所述:

一个抽象类是可以仅使用作为基类一些其它类中的一个; 除了作为派生自它的类的子对象之外,不能创建抽象类的任何对象.如果一个类至少有一个纯虚函数,则它是抽象的.

没有具体提到纯抽象类(或纯虚拟类),只有纯虚函数.

注意:这是基于标准草案n3376.


Vau*_*ato 5

C++14 标准确实定义了术语“多态类”(10.3/1):

声明或继承虚函数的称为多态类

但它没有使用术语“多态基类”。