为什么 C++ 中,基类指针可以指向派生类对象?

可以指向,但是无法使用不存在于基类只存在于派生类的元素。(所以我们需要虚函数和纯虚函数)
原因是这样的:
在内存中,一个基类类型的指针是覆盖N个单位长度的内存空间。
当其指向派生类的时候,由于派生类元素在内存中堆放是:前N个是基类的元素,N之后的是派生类的元素。
于是基类的指针就可以访问到基类也有的元素了,但是此时无法访问到派生类(就是N之后)的元素。

基类指针可以指向派生类对象而派生类指针不可以指向基类对象

同理派生类可以为基类赋值,而基类不能给派生类赋值