使用指针类型说明指针变量指向的对象,如果存在继承关系,可以使用父类指针指向子类对象
example:
int x=5;
float *p;
p = &x; //编译无法通过,这两者之间没有继承关系
class A{}
class B:public A{}
A *p = new B; //编译通过
如果要将子类指针指向父类对象,则需要做强制类型转换
之所以使用父类指针指向子类对象,目的就是实现多态,通过父类指针可以指向多个不同的子类对象,向不同的对象发送同一个消息,不同的对象在接受时会产生不同的行为。但是根据内存的解释,父类指针无法访问子类的独有的函数,因此这个用法主要是用来实现多态(执行期的动态绑定)
参考资料:https://blog.csdn.net/hk121/article/details/81165391
https://www.zhihu.com/question/25572937/answer/34439248