1. C++的设计者为什么要设计运行期多态性?既然"对象.类::成员函数()"这个形式能解决问题,C++的设计者为什么要设计一个多此一举的运行期多态性?2. 运行期多态性似乎是一种“假动态”,众所周知,非虚函数的调用指令,在程序被编译链接后,其调用指令包含一个链接器链接的“常量”地址,该“常量”地址就是此非虚函数的静态地址,这是所谓的静态的编译期的多态性,而动态的运行期多态性就真的是动态的吗?所谓的运行期多态性,无非就是在类的对象被构造时,编译链接器,或者装载器为对象构造一个虚函数表指针成员变量,此指针成员变量对外不可访问,此指针指向此对象的类族的虚函数表,而虚函数表中的一个个的虚函数实质上还是一个个静态的地址,只不过是通过一个中间指针,间接的调用,这样就变成动态的?这是一种假动态?3. 在实际的社会生产生活应用中,有没有什么实际的例子,实际的问题,必须不得不由虚函数出马来解决才能完成,而"对象.类::成员函数()"这样的形式是完成不了的实际的问题呢?大家有没有遇到过这样的问题呢?
==============
前面的就不说了,只说这一个吧。举一个例子,你现在有一个图形类,有三个子类,分别是圆形,三角形和矩形。在一次显示过程中,有很多个这三个类的对象。为了方便处理,一般这些对象都是放在一个队列中的。如果没有虚函数,你如何方便地调用这三个类的DisPlay函数来显示它们呢?
还有动态也好静态也好就是个称呼,只不过是为了和重载有个区分,没必要扣字,要我说我的电脑就呆在那没动,他里面的软件怎么动硬件动我都不知道,我就说他是静态的怎么了。