#include <iostream>
// 定义一个基类
class Base {
public:
// 虚函数,派生类可以重写这个函数
virtual void show() {
std::cout << "Base class show function" << std::endl;
}
// 析构函数也应该是虚函数,以确保派生类的析构函数被正确调用
virtual ~Base() {}
};
// 定义一个派生类
class Derived : public Base {
public:
// 重写基类的虚函数
void show() override {
std::cout << "Derived class show function" << std::endl;
}
};
int main() {
Base* basePtr;
Base baseObj;
Derived derivedObj;
basePtr = &baseObj;
basePtr->show(); // 调用 Base 类的 show 函数
basePtr = &derivedObj;
basePtr->show(); // 调用 Derived 类的 show 函数
return 0;
}
virtual
):在基类中声明为 virtual
的函数可以在派生类中被重写。这样,通过基类指针或引用来调用该函数时,会根据实际对象的类型来决定调用哪个版本的函数。virtual
。override
关键字:用于明确表示派生类中的函数是重写基类中的虚函数。如果基类中没有相应的虚函数,则编译器会报错。这有助于避免拼写错误或其他问题导致的意外行为。这段代码展示了如何使用虚函数实现多态性,并确保派生类的行为可以通过基类指针正确调用。
下一篇:c++sort
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站