是什么在C ++抽象类和纯抽象类的区别?(What is the difference betwee

2019-07-21 02:51发布

例:

迭代器是纯抽象:行为类似迭代器是一个迭代器什么。

这是什么意思?

Answer 1:

一个抽象类具有至少一个纯虚函数。 这是标准的C ++术语。

有些人用术语纯抽象类来描述有什么,但纯虚函数(换句话说,没有数据成员,并没有具体的函数)的类。 这相当于Java接口。

现在,您的实际问题:

迭代器是纯抽象:行为类似迭代器是一个迭代器什么。

这无关抽象类(纯或其他)。 所有它的说法是,任何满足合同迭代器是一个迭代。 它甚至没有成为一个类(认为三分球)。



Answer 2:

没有。 C ++标准规定只有一个),一类是抽象的,如果它具有至少一个纯虚函数,直接或继承的,以及b),你不能直接实例化的抽象类。 有作为一个纯粹的抽象类中没有这样的事情。



Answer 3:

我认为一个纯抽象类是C ++相当于一个接口。

见这里 :

纯抽象类只有抽象成员函数和没有数据或具体的成员函数。 一般情况下,一个纯抽象类用于定义一个接口,并且旨在由具体类继承。 这迫使类的设计者和这个类的用户之间的合同的一种方式。 这个类的用户必须声明的类编译的匹配构件的功能。



Answer 4:

一个抽象类是一些功能的类,但一些需要实现,而纯抽象类有没有实现的其功能。

这是一个有点像在其他语言如C#和Java的接口。

纯抽象类将成为指定“契约”的纯抽象类的结石必须坚持的宗旨。



Answer 5:

抽象类 *将ATLEAST具有一个纯虚函数,并且可以具有数据成员。

纯抽象类 是一样的 接口只有纯虚函数都可以在这里定义。 没有数据成员或方法的定义可以在这里完成。

欲了解更多信息,请访问:( https://en.wikibooks.org/wiki/C%2B%2B_Programming/Classes/Abstract_Classes/Pure_Abstract_Classes )



Answer 6:

在C ++中没有纯抽象类。 有仅抽象类和纯虚函数(功能已经打上= 0)。 与至少一个纯虚拟函数类成为抽象。 但是纯虚函数可以实现。



Answer 7:

在你的榜样,你在谈论迭代器 。 在C ++中,更具体的标准库,术语迭代器并不是指纯粹的抽象类,而是所谓的概念 。 概念使用的模板,而不是虚拟/基于继承的多态性。 目前(C ++ 11),概念仅在库文件中定义的,即它们不(还)存在的C ++语言本身的一部分。 标准库文件的概念,例如“迭代”的概念,作为一组的任何类型/对象的要求被接纳为要与一个“迭代”工作模板的类型参数。 一组要求的无论在哪个表达式有效的物体上,而不管其类型的定义。 这是鸭打字的形式。 例如,请参阅: http://en.cppreference.com/w/cpp/concept/Iterator



文章来源: What is the difference between abstract class and pure abstract class in C++?