在上一篇笔记中,我记录了对C++对象模型的理解,包括支持多态的对象模型结构。那么多态发生的最直接最基本的条件为什么必须是指针(Pointer)和引用(Reference)呢?
这个问题可以追溯到刚接触C++时,教材上就是这么写的:经由指针和引用完成的函数调用会被动态完成,对象则不可以。我们在这里统一以指针调用来说明这个问题(引用本质通常是由指针实现,我们视为const 指针)。先看下列代码:
class CZooAnimal {
public:
CZooAnimal() {
}
virtual ~CZooAnimal() {
}
public:
virtual void Run() {