什么是基类指针,什么是派生类指针
时间: 2024-06-22 18:04:11 浏览: 267
在C++中,基类指针和派生类指针是面向对象编程中两个重要的概念。
**基类指针(Base Class Pointer)**:
基类指针是指向某个基类对象的变量。当你有一个指向基类的指针时,即使实际上存储的是派生类的对象,由于类型转换规则,这个指针仍然只能访问基类中定义的成员(包括数据成员和成员函数)。如果你试图通过基类指针调用派生类特有的方法或访问派生类特有的数据,会触发运行时错误(如未定义的成员函数调用)。
**派生类指针(Derived Class Pointer)**:
派生类指针则是直接指向派生类对象的变量。它可以访问派生类中的所有成员,包括继承自基类的成员和派生类特有的成员。使用派生类指针时,可以直接调用派生类特有的方法和访问派生类的数据。
例如,如果你有一个`BaseClass`和一个`DerivedClass`,派生类从基类继承:
```cpp
class BaseClass {
public:
void baseMethod() {
// 基类方法
}
};
class DerivedClass : public BaseClass {
public:
void derivedMethod() {
// 派生类方法
}
};
```
你可以这样声明和使用它们:
```cpp
BaseClass* basePtr; // 基类指针
DerivedClass* derivedPtr; // 派生类指针
// 初始化为基类对象
basePtr = new BaseClass();
basePtr->baseMethod(); // 可以调用基类方法
// 初始化为派生类对象
derivedPtr = new DerivedClass();
derivedPtr->baseMethod(); // 可以调用基类方法
derivedPtr->derivedMethod(); // 可以调用派生类方法
```
阅读全文