c 语言如何实现虚函数调用
时间: 2024-10-13 09:12:57 浏览: 15
c++ 构造函数中调用虚函数的实现方法
在C++中,虚函数是实现多态的关键特性之一。为了在派生类中实现对基类虚函数的动态调用,你需要在基类声明虚函数,并在派生类的构造函数中将指向自身指针的基类指针设置为`virtual`。以下是基本步骤:
1. **声明虚函数**:
在基类声明虚函数时,在函数原型前加上`virtual`关键字,例如:
```cpp
class Base {
public:
virtual void func() { /* 实现 */ }
};
```
2. **在派生类中定义虚函数**:
如果你想让这个基类函数在派生类中有不同的实现,需要在派生类中重写它,并保持`virtual`属性,如:
```cpp
class Derived : public Base {
public:
// 虚函数的实现
virtual void func() override { /* 派生类的实现 */ }
};
// 或者,如果你想要覆盖所有基类实例:
Derived* derivedObj = new Derived();
Base* basePtr = derivedObj; // 将基类指针指向派生对象
```
3. **动态调用**:
通过基类指针调用`func()`时,会自动调用该指针所指向对象的实际函数,而不是直接调用`Base`类的版本。这实现了运行时的多态。
```cpp
basePtr->func(); // 这里会执行Derived类的func()
```
阅读全文