#include <iostream>
using namespace std;
// 基类
class Animal {
public:
// 虚函数,实现多态
virtual void sound() {
cout << "Animal makes a sound" << endl;
}
};
// 派生类1
class Dog : public Animal {
public:
// 重写基类的虚函数
void sound() override {
cout << "Dog barks" << endl;
}
};
// 派生类2
class Cat : public Animal {
public:
// 重写基类的虚函数
void sound() override {
cout << "Cat meows" << endl;
}
};
int main() {
Animal* animal1 = new Dog();
Animal* animal2 = new Cat();
// 多态调用
animal1->sound(); // 输出: Dog barks
animal2->sound(); // 输出: Cat meows
delete animal1;
delete animal2;
return 0;
}
Animal
:定义了一个虚函数 sound()
,这是实现多态的关键。虚函数允许派生类重写该函数。Dog
和 Cat
:分别继承自 Animal
类,并重写了 sound()
函数,实现了不同的行为。main
函数中,使用基类指针指向派生类对象,调用 sound()
函数时,实际调用的是派生类中的实现,而不是基类中的实现。通过这种方式,程序可以根据对象的实际类型动态地调用相应的函数,这就是 C++ 中的多态特性。
上一篇:getline在c++中怎么用
下一篇:c++小游戏编程代码
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站