为什么需要基类指针指向派生类对象?
我们知道虚函数可以让我们的类具备多态的功能,你肯定在此会有所疑惑,为什么需要基类指针指向派生类对象?派生类指针自己就能实现的功能,何必用基类指针来多此一举呢?其实这就不得不谈及多态的奥妙了。
假设我们有这样一群动物,鸟类,爬虫类,人类。现在我们想要分别实现每一类动物“走”这一概念,首先我们肯定是抽象出“走”这一个单独的概念,然后将它放进基类做一个虚函数,各个子类继承这个基类,在分别去实现各自的“走”。代码如下:
class Animal {
public:
virtual void walk() {
cout << "Base walk of animal!" << endl;
}
virtual ~Animal() {
cout << "Animal Down!" << endl;
}
}