#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 分别重写了 sound() 函数,实现了各自不同的行为。main() 函数中,使用基类指针 Animal* 来指向派生类对象,并调用 sound() 函数。由于 sound() 是虚函数,实际调用的是派生类中重写的方法,这就是多态性的体现。这种机制允许程序在运行时根据对象的实际类型来决定调用哪个版本的函数,从而实现了更灵活和可扩展的设计。
上一篇:c++ 网络库
下一篇:c++ |=
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站