我知道抽象基类是那些具有纯虚函数的对象,并且不能创建抽象基类的对象。
那么,为什么我们要创建一个无法定义其对象的类呢?
这是开发人员之间用来说“这是我们要实现的功能的类型”的契约,如果开发人员要设计的类要继承基类,则将实现留给开发人员。
简单的例子:
#include <iostream>
using namespace std;
class Animal
{
public:
Animal() {}
virtual void sound() = 0;
};
/* Dog class is derived from base class Animal */
class Dog : public Animal
{
public:
Dog() {}
void sound()
{
cout << "woof!" << endl;
}
};
在这里,Dog
是一个Animal
,并且必须实现它自己的声音。基类Animal
的sound()函数意味着Animals会发出声音,并且从其继承的任何类Animal
都应实现声音函数。由此,您可以创建一个Cat
从其声音类输出喵声的类,以及一个Bear
输出吼声的类,等等。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句