请考虑以下示例:
#include <iostream>
using namespace std;
class Animal
{
public:
    virtual void makeSound() {cout << "rawr" << endl;}
};
class Dog : public Animal
{
public:
    virtual void makeSound() {cout << "bark" << endl;}
};
int main()
{
    Animal animal;
    animal.makeSound();
    Dog dog;
    dog.makeSound();
    Animal badDog = Dog();
    badDog.makeSound();
    Animal* goodDog = new Dog();
    goodDog->makeSound();
}
输出是:
rawr
bark
rawr
bark
但我认为产量肯定应该是"粗树皮树皮".badDog有什么用?
更新:您可能对我的另一个问题感兴趣.