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

时间:2016-02-16 03:00:11

标签: c++

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

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

class EuropeCar: public Car
{
 void drive(){std::cout << "drive left";}
}

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

3 个答案:

答案 0 :(得分:6)

标准特别提及多态类,例如 10.3.1

  

虚函数支持动态绑定和面向对象   节目。声明或继承虚函数的类是   称为多态类

它还讨论了抽象类纯虚函数,例如 10.4.2

  

抽象类是一个只能用作基类的类   其他一些班级;不能创建抽象类的对象   除了作为从它派生的类的子对象。一堂课是抽象的   如果它至少有一个纯虚函数

没有特定提及纯抽象类(或纯虚拟类),只有纯虚函数。

N.B:这是基于标准草案n3376。

答案 1 :(得分:4)

C ++ 14标准确实定义了术语&#34;多态类&#34; (10.3 / 1):

  

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

但它并没有使用术语&#34;多态基类&#34;。

答案 2 :(得分:1)

我不确定&#34;俚语&#34;但是C ++中的纯抽象类具有明确的含义。

C ++中的纯抽象基类具有抽象成员函数(意味着它们都被声明为virtual <return_type> <func_name>() = 0)并且没有数据或具体成员函数。

这里的多态基类比较宽松。