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

更新于:30-7-2019

14K+ 次浏览

开始你的职业生涯

通过完成课程获得认证

开始
广告
© . All rights reserved.