c++派生类指针可以指向基类吗
作者:野牛程序员:2023-08-07 11:03:35 C++阅读 2803
派生类的指针可以指向基类的对象。在C++中,派生类是从基类继承而来的,派生类包含了基类的成员和方法,并且可以扩展自己的成员和方法。由于派生类包含了基类的所有内容,所以派生类的指针可以直接指向基类的对象。
这种特性是由C++的继承机制决定的。派生类与基类之间存在一种“是一种”(is-a)关系,也就是说,派生类是基类的一种特殊形式。因此,派生类的指针可以安全地指向基类的对象,可以通过派生类的指针访问基类的成员和方法。
下面是一个简单的示例:
#include <iostream>
class Base {
public:
void display() {
std::cout << "Base class" << std::endl;
}
};
class Derived : public Base {
public:
void show() {
std::cout << "Derived class" << std::endl;
}
};
int main() {
Base baseObj;
Derived derivedObj;
Base* ptr; // 定义一个指向基类的指针
ptr = &baseObj; // 指针指向基类对象
ptr->display(); // 调用基类成员函数
ptr = &derivedObj; // 指针指向派生类对象
ptr->display(); // 调用基类成员函数
// ptr->show(); // 错误,无法通过基类指针访问派生类特有的成员函数
return 0;
}在上述示例中,定义了一个基类Base和一个派生类Derived,派生类继承自基类。然后创建了一个基类对象baseObj和一个派生类对象derivedObj。接着,定义了一个指向基类的指针ptr,首先将其指向基类对象baseObj,然后指向派生类对象derivedObj。通过派生类的指针ptr,可以调用基类的成员函数display()。
需要注意的是,通过派生类的指针只能访问派生类和基类共有的成员和方法,无法直接访问派生类特有的成员和方法。如果想要访问派生类特有的成员和方法,可以通过将派生类的指针转换为派生类类型来实现。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++访问指针指向的对象成员
- 下一篇:c++指针和引用的区别
