我正在阅读" C ++编程语言第4版"而且我已经到了Bjarne试图解释具体课程的地步。他的解释令我感到困惑,我无法在网上找到满足我的任何解释。我知道抽象类是至少有一个虚函数的类,而具体的类是相反的,但我不能围绕具体的类。本书"编程原理与实践使用C ++"是说具体类本质上是派生类,抽象类是基类。这是正确的解释吗?我一直试图弄清楚这个概念。此外,"一个可用于创建对象的类是一个具体的类"。这是否意味着一个类是具体的,如果我可以做类似" myclass classobject1;",并且我不能用抽象类创建对象?
答案 0 :(得分:2)
本质上,具体类是实现接口的类。接口(如抽象类)定义了如何与实现该接口的实例进行交互。您通过成员函数与实例进行交互,因此接口通常声明虚拟成员函数,这些函数旨在由实现类(具体类)覆盖(实现)。如果我有一个抽象类Animal
,它可能有一个名为speak
的虚拟成员函数。动物都会发出不同的声音,因此Animal
界面不知道如何定义该功能。具体类(例如Dog
或Tiger
)将定义调用speak
函数时实际发生的情况。