虚函数动物类
时间: 2023-08-28 20:10:32 浏览: 54
以下是一个简单的虚函数动物类的示例:
```c++
#include <iostream>
using namespace std;
class Animal {
public:
virtual void sound() { // 虚函数
cout << "动物发出声音" << endl;
}
};
class Dog : public Animal {
public:
void sound() { // 重写虚函数
cout << "汪汪汪" << endl;
}
};
class Cat : public Animal {
public:
void sound() { // 重写虚函数
cout << "喵喵喵" << endl;
}
};
int main() {
Animal *p1, *p2; // 定义两个Animal类型指针
Dog d;
Cat c;
p1 = &d; // 指向派生类对象
p1->sound(); // 调用虚函数,输出:汪汪汪
p2 = &c; // 指向另一个派生类对象
p2->sound(); // 调用虚函数,输出:喵喵喵
return 0;
}
```
在这个示例中,`Animal` 类中有一个虚函数 `sound()`,其含义是动物发出声音。`Dog` 和 `Cat` 类都继承自 `Animal` 类,并且都重写了 `sound()` 函数,分别输出了汪汪汪和喵喵喵。在 `main()` 函数中,定义了两个 `Animal` 类型的指针 `p1` 和 `p2`,分别指向 `Dog` 类和 `Cat` 类的对象。通过调用虚函数 `sound()`,输出了相应的声音。注意,调用的是派生类的函数,而不是基类的函数。这就是虚函数的多态特性。