父类指针指向子类对象
时间: 2023-11-02 22:55:49 浏览: 135
父类引用指向子类对象
当父类指针指向子类对象时,可以通过该指针访问子类对象中继承自父类的成员函数和成员变量。这是因为子类对象中包含了父类的成员,所以可以通过父类指针来访问这些成员。
例如,假设有一个父类Animal和一个子类Dog,其中Dog是Animal的派生类。我们可以创建一个Animal类型的指针,并将其指向一个Dog对象。如下所示:
```cpp
Animal* animalPtr = new Dog();
```
现在,我们可以使用animalPtr指针来调用Animal类中定义的成员函数,例如:
```cpp
animalPtr->eat(); // 调用Animal类中的eat()函数
```
同时,由于Dog是Animal的派生类,它可以添加自己的成员函数和成员变量。在这种情况下,使用指针访问这些特定于子类的成员时,需要进行类型转换。例如:
```cpp
Dog* dogPtr = dynamic_cast<Dog*>(animalPtr); // 将父类指针转换为指向子类的指针
dogPtr->bark(); // 调用Dog类中的bark()函数
```
需要注意的是,在使用指针访问派生类特定成员时,应确保父类指针指向的实际对象是派生类的对象,否则可能导致程序出错。
阅读全文