为什么基类的指针可以指向派生类对象,但是派生类指针不能指向基类对象

Derive *bp1;
Derive dpp;
bp1 = &dpp;
bp1->show();

Base bpp;
bp1 = &bpp;   //错误

假设有个people类是基类,成员有姓名和身份证号,有个派生类学生student,添加了成员学号,现在如果你说的这个情况成立student的指针----pt让他指向people成员t,则t只有两个成员变量,而*pt有3个,现在pt->学号这个变量在pt下是可以使用的,但它指向的实体却没有这个变量,所以出错,于是C++直接就避免了这样的隐式转换

你可能感兴趣的:(C++学习)