举例说明:含有继承关系的类中虚函数的调用
时间: 2023-06-02 09:02:14 浏览: 101
假设有一个基类Animal和两个派生类Dog和Cat,Animal类中有一个虚函数speak(),Dog和Cat类分别重写了speak()函数。
在程序中,可以用基类指针指向派生类对象,然后通过这个指针调用虚函数speak()。这样可以实现多态性,即程序会根据实际指向的对象类型来调用相应的函数。
例如:
```c++
class Animal {
public:
virtual void speak() {
cout << "I am an animal." << endl;
}
};
class Dog : public Animal {
public:
virtual void speak() {
cout << "I am a dog." << endl;
}
};
class Cat : public Animal {
public:
virtual void speak() {
cout << "I am a cat." << endl;
}
};
int main() {
Animal* animal1 = new Dog();
Animal* animal2 = new Cat();
animal1->speak(); // 输出"I am a dog."
animal2->speak(); // 输出"I am a cat."
return 0;
}
```
在这个例子中,animal1和animal2是Animal类的指针,但分别指向了Dog类和Cat类的对象。通过调用它们的虚函数speak(),程序会根据实际指向的对象类型来调用相应的函数,输出"I am a dog."和"I am a cat."。这就是利用虚函数实现多态性的例子。
阅读全文