c++中虚函数的使用
时间: 2023-11-06 12:22:34 浏览: 94
C++虚函数表解析
5星 · 资源好评率100%
在 C++ 中,虚函数是一种特殊的成员函数,可以通过基类的指针或引用来调用派生类中的对应函数。虚函数允许在派生类中重新定义基类的函数,实现多态性,即在运行时根据对象的实际类型来确定调用的函数。
要在 C++ 中使用虚函数,需要满足以下条件:
1. 基类需要使用关键字 `virtual` 声明函数为虚函数。
2. 派生类中的函数需要有相同的函数签名(返回类型、参数列表),并且也要使用关键字 `virtual` 声明为虚函数。
以下是一个简单的示例代码,演示了虚函数的使用:
```cpp
#include <iostream>
class Base {
public:
virtual void func() {
std::cout << "Base::func() called" << std::endl;
}
};
class Derived : public Base {
public:
void func() override {
std::cout << "Derived::func() called" << std::endl;
}
};
int main() {
Base* ptr = new Derived(); // 创建派生类对象,并用基类指针指向它
ptr->func(); // 调用虚函数,根据对象的实际类型调用对应的函数
delete ptr; // 释放内存
return 0;
}
```
输出结果为:
```
Derived::func() called
```
在上述代码中,基类 `Base` 声明了一个虚函数 `func`,派生类 `Derived` 重新定义了这个函数。通过创建派生类对象,然后用基类指针指向该对象,再调用虚函数 `func`,程序会根据对象的实际类型调用对应的函数,即调用派生类中的 `func` 函数。
需要注意的是,为了确保正确的多态行为,基类的析构函数通常也需要声明为虚函数,以便在删除基类指针时能够正确调用派生类的析构函数。
希望对你有所帮助!如果还有其他问题,请继续提问。
阅读全文