⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 回复各位大虾请问对象的多态性指的是什么?.txt

📁 c_c++技巧集
💻 TXT
字号:
作者: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的调用就会产生二义性, 在编译器这关就通不过.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -