帮忙解答一下。谢谢!
c++的多态性主要体现在那些方面上?
[解决办法]
1\ 函数重载 (Function overloading, include operator overloading). 静态多态
2\ 模板类, 模板函数. 是一种由编译器处理的静态的多态
3\ 通过基类的指针或引用调用虚函数. 运行期的多态
[解决办法]
楼主一定事一个好学的人,多态就是运行时判断类型,怎么说那,如果我没说清咱们可以继续交流,希望能帮到你
首先楼主要知道具有虚函数的类和没有虚函数的类的区别。从物理角度来说就是内存空间的分布,编译器会位每一个具有虚函数的类的开头多分配一个4字节的空间,就是我们常说的虚表指针,他是一个指向函数的指针,他指向的函数全时在一个叫虚表的函数指针数组里。类中各个函数的的位置时根据声明的顺序。这样当你定义一个基类的指针,当他指向一个派生类对象的时候,指针会以相同的方式找到头4个字节,然后进入虚表,由于指向对象的类型时确定的,那么虚表中各个函数指针指向的就是这个类的虚函数的实现代码处,于是就去调用了。
我写过一篇BLOG时关于这个问题的 ,在CSDN BLOG中发表过 ,你可以去看看
http://blog.csdn.net/likexin/archive/2007/07/10/1684155.aspx