当前位置:
首页 >
C++多态的概念及前提条件
发布时间:2025/4/5
47
豆豆
生活随笔
收集整理的这篇文章主要介绍了
C++多态的概念及前提条件
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
在前面的所有列举的程序中,函数的入口地址与函数名是在编译时进行绑定的,我们称之为编译期绑定,而多态的功能则是将函数名动态绑定到函数入口地址,这样的动态绑定过程称为运行期绑定。编译期绑定是指在程序编译时就将函数名与函数入口地址绑定到一起,运行期绑定是指在程序运行时才将函数名与函数入口地址绑定到一起,而在运行期绑定的函数我们称其是多态的。
#include<iostream> using namespace std;class base { public:void display(){cout<<"I'm base class!"<<endl;} };class derived: public base { public:void display(){cout<<"I'm derived class!"<<endl;}};int main() {base * p;derived test;p = &test;p->display();return 0; } 此程序最终运行结果如下:
I’m base class!
很显然这个和我们想要的不一样,因为我们指向的test是派生类创建的对象,我们希望它指向派生类的函数。于是,C++提供了多态这一种机制。
要想形成多态必须具备以下三个条件:
- 必须存在继承关系;
- 继承关系中必须有同名的虚函数;
- 存在基类类型的指针或引用,通过该指针或引用调用虚函数。
这段程序最终运行结果如下:
I’m derived class!
总结
以上是生活随笔为你收集整理的C++多态的概念及前提条件的全部内容,希望文章能够帮你解决所遇到的问题。