C_C++技巧集

源代码在线查看: 回复各位大虾请问对象的多态性指的是什么?.txt

软件大小: 402 K
上传用户: a1102882595
关键词: C_C
下载地址: 免注册下载 普通下载 VIP

相关代码

				作者:rick1126
				email: rickzhang@sina.com
				日期:8/23/2001 4:13:13 PM
				一般多态性体现在派生类的多层次继承上面体现的, 后绑定提供了机制. 
				
				1. 后绑定
				   就是编译器对于每一个包含虚函数的类创建一个VTable, VTable里面编译器放置特定类的虚函数地址. VPTR是编译器提供的一个指向VTable的指针. 通过基类指针做虚函数调用的时候, 编译器静态插入取得这个VPTR, 在VTable中查找函数地址的代码, 就可以正确地调用函数了.
				
				2. 多态调用
				   如果一个函数继承自多个具备虚函数的基类, 就是说该派生类对于每一个基类都具备一个VTable的VPTR, 则调用具有多个基类实现版本的虚函数的时候自然会调用相应基类的指针然后获得对应函数实现的代码.
				
				3. 特点
				1) 就近原则
				   如果派生层次为A->B->C  对于C而言, 如果A,B存在同名虚函数, 总是调用父类的虚函数版本
				
				2) 平行继承的二义性
				   如果 C 同时继承A, B; 则如果AB存在同名虚函数, C的调用就会产生二义性, 在编译器这关就通不过.
				
							

相关资源