基类指针指向派生类oj
时间: 2024-08-11 18:00:19 浏览: 99
基类指针指向派生类对象,也被称为“向上指针”或“基类型指针”,这是一种常见的面向对象设计模式,用于在不暴露派生类的具体信息的情况下,通过基类引用访问派生类的成员。以下是基类指针指向派生类的一般情况:
1. 基类声明和定义:首先,有一个基类(通常是抽象类或者具有通用功能的类),比如 `BaseClass`。
```cpp
class BaseClass {
// 基类的成员
virtual void baseMethod() {
// 基类的实现
}
};
```
2. 派生类:然后创建一个或多个派生类,比如 `DerivedClass`,继承自 `BaseClass`。
```cpp
class DerivedClass : public BaseClass {
// 派生类的特有成员
void derivedMethod() {
// 派生类的实现
}
};
```
3. 基类指针声明:用 `BaseClass*` 类型声明一个指针,它可以指向 `BaseClass` 或其派生类的对象。
```cpp
BaseClass* ptr;
```
4. 初始化与使用:在适当的时候,可以将派生类的对象赋值给基类指针,这样就可以调用基类中声明的虚函数,而实际上执行的是派生类的实现。
```cpp
DerivedClass obj;
ptr = &obj; // 将派生类对象的地址赋值给基类指针
// 调用虚函数,会根据实际类型调用
ptr->baseMethod(); // 这里会调用 DerivedClass 中的 baseMethod 实现
ptr->derivedMethod(); // 虽然编译器不知道,但这里会调用 DerivedClass 的 derivedMethod
```
阅读全文