基类类型的引用或指针既可以引用基类对象,也可以引用派生类对象,但编译器只把它当做基类类型对象。
代码执行结果为 cat0 cat0
可以看出两个都调用了基类对象的print 函数。
但是派生类的引用转换不同于转换对象。
将派生类对象传给基类的引用,引用直接绑定该对象对象本身未被复制。
将派生类对象传给希望接受基类类型的对象(非引用),则派生类对象的基类部分被复制到基类形参。
代码执行结果为base1 base1
很明显执行的是基类的print函数,但是也执行派生类的构造函数并把cat参数的值传给了基类,