static_cast 的 一个新认识
1. CDerive_1, CDerive_2 都继承自 CBase.
2. CBase 有虚函数, CDerive_1, CDerive_2都有各自的实现。
3. CDerive_1 derive_1;
CBase* base = static_cast<CBase*>(derive_1);
CDerive_2* derive_2 = static_cast<CDerive_2*>(base);
derive_2->虚函数。。。。 // 这里 将会 执行 derive_1的虚函数。
derive_2->derive_2的函数, // 编译正确,运行未知, 但是 这里将会执行 derive_2的 函数。
derive_2->derive_2的特有虚函数, // 运行时错误,无法在虚函数表中找到这个虚函数,因为使用的还是 derive_1的虚函数表指针。