Core List
1. 重新定义 non-virtual 函数的问题
Derived x;
Base *pBase = &x;
pBase->fun(); // 调用Base的 fun 函数
Derived *pDerived = &x;
pDerived->func(); // 调用Derived 的 fun 函数
结论: non-virtual 函数是静态绑定,函数行为取决于“指向该对象的指针”。
virtual 函数是动态绑定,函数行为取决于“指针指向的对象”。
2. 论证
Derived 重新定义 Base 的 fun:每一个Derived 都是一个Base不为真。