C ++中的早期绑定和晚期绑定
在本节中,我们将了解什么是早期绑定以及什么是C++中的后期绑定。绑定是指将标识符转换为地址的过程。对于每个变量和函数,都完成了绑定。对于函数,它将调用与编译器正确的函数定义匹配。绑定在编译时或运行时完成。
早期绑定
这是编译时多态。在这里,它直接将地址与函数调用关联。对于函数重载,这是早期绑定的一个示例。
示例
#include<iostream> using namespace std; class Base { public: void display() { cout<<" In Base class" <<endl; } }; class Derived: public Base { public: void display() { cout<<"In Derived class" << endl; } }; int main(void) { Base *base_pointer = new Derived; base_pointer->display(); return 0; }
输出结果
In Base class
后期绑定
这是运行时多态。在这种类型的绑定中,编译器添加了在运行时标识对象类型的代码,然后将该调用与正确的函数定义进行匹配。这是通过使用虚拟功能来实现的。
示例
#include<iostream> using namespace std; class Base { public: virtual void display() { cout<<"In Base class" << endl; } }; class Derived: public Base { public: void display() { cout<<"In Derived class" <<endl; } }; int main() { Base *base_pointer = new Derived; base_pointer->display(); return 0; }
输出结果
In Derived class