派生类对象如何调用基类
时间: 2024-10-06 15:01:01 浏览: 31
C#中派生类调用基类构造函数用法分析
5星 · 资源好评率100%
在面向对象编程中,派生类的对象可以像访问其自身的成员那样,自然地调用基类的成员。这是因为当我们创建派生类对象时,它会隐式包含对基类的引用。以下是通过几种常见情况说明:
1. **直接调用**:如果基类有公有或保护成员函数,可以直接通过派生类对象调用,无需显式转换。例如:
```cpp
BaseClass baseObj; // 基类对象
DerivedClass derivedObj; // 派生类对象
// 直接调用基类的方法
baseObj.baseMethod();
derivedObj.baseMethod(); // 虽然实例是 DerivedClass,也可以调用 BaseClass 的方法
```
2. **虚函数**:若基类中有声明为 `virtual` 的成员函数,在派生类中重写了该函数,那么无论使用哪个类型的指针或引用,都将调用实际的目标函数。这是多态的基础。
```cpp
void BaseClass::virtualMethod() {
//...
}
DerivedClass::virtualMethod() override { // 重写
//...
}
// 使用基类指针调用虚函数
BaseClass* basePtr = &derivedObj;
basePtr->virtualMethod(); // 将调用 DerivedClass 的版本
```
阅读全文