程序员的需求产生了多态,这个需求是:
在处理类型层次时,程序员希望不把对象看做莫一种特殊的类型形式,而是把它看做基本类型;
这个需求引发了一个问题:
编译器在编译时不能确定应当执行那个派生类的代码,这种是早捆绑引起的;
什么是早捆绑(early binding):
编译程序时,根据调用就可以确定程序运行时调用函数的地址;
什么是晚捆绑(late binding):
在编译程序时,无法确定调用函数的地址,只有运行时通过对象自带信息计算调用函数地址;
问题的解决:
编译器采用晚捆绑技术;
晚捆绑的实现原理:
通过存放在对象中的自身信息,程序运行时计算出调用函数函数体的地址;
版绑定需要说明:
使用关键之virtual向编译器指出;