#include <iostream>
using namespace std;
// 基类
class Base {
public:
// 虚函数
virtual void show() {
cout << "Base class" << endl;
}
};
// 派生类
class Derived : public Base {
public:
// 重写基类的虚函数
void show() override {
cout << "Derived class" << endl;
}
};
int main() {
Base* basePtr;
Derived derivedObj;
// basePtr指向基类对象时,调用基类的show函数
basePtr = new Base();
basePtr->show(); // 输出: Base class
// basePtr指向派生类对象时,调用派生类的show函数
delete basePtr;
basePtr = &derivedObj;
basePtr->show(); // 输出: Derived class
return 0;
}
virtual
关键字声明的成员函数称为虚函数。虚函数的作用是允许派生类重写该函数,并且在通过基类指针或引用来调用该函数时,能够根据实际对象类型调用相应的版本。Base
类有一个虚函数 show()
,Derived
类重写了这个函数。当 basePtr
指向不同类型的对象时,调用 show()
函数会根据对象的实际类型调用不同的版本。上一篇:std在c++语言中
下一篇:c++ tuple
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站