学习C++当然是知道C++的三大特点,哪三大?封装、继承、多态。
作为一门“面向对象”设计的语言,关键就在于多态性,在讲解多态性的时候经常看见一个名词——动态绑定。何为动态绑定?教材书上总是很大概地讲解了一翻,以前就搞不清楚,现在学一遍,就不得不挖一挖了、、
动态绑定,我还没在教材上看到确切的解释,那我就搬上自己的理解呗(有错请指出)。我觉得动态绑定就是在运行时通过确定对象的类型来确定要调用的函数。为什么确定的是对象的类型呢?因为每个通过动态申请的对象都有静态类型和动态类型,动态类型就是当前指针所指对象的类型可能会发生改变,静态类型就是声明时指针的类型不会改变。显然,我们要确定的当然是动态类型,因为静态类型在编译时已经可以确定了。为什么是在运行时确定呢?前面我已经介绍过,动态申请的空间是通过堆实现的,而堆是在运行时操作的,所以、、、然后就是动态绑定的2个要素:
1、虚函数
2、指针或引用
虚函数我就不用说了,因为这是C++鼻祖的规定,跟其内部语法和结构有关。而为什么要用指针或引用呢?好解释、、、前面已经说了,我们要确定的类型是动态类型,那么更“赤裸裸点”讲就是地址。如果你单纯用的是类申明一个对象,那么它也就没有动态类型,或者说它的动态类型就是它的静态类型,不会改变。如果用的是指针和引用,操作的直接是对象的地址,指针所指对象的类型也就可能发生变化。不知道这样讲,有木有讲得通俗,不管了、、、上例子:
能明白否???
武汉灰场热~~~