Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การผูกในช่วงต้นและการผูกล่าช้าใน C++


ในส่วนนี้เราจะมาดูกันว่าอะไรคือ Early Binding และ Late Binding ใน C++ Thebinding หมายถึงกระบวนการแปลงตัวระบุเป็นที่อยู่ สำหรับแต่ละตัวแปรและฟังก์ชันการผูกนี้จะเสร็จสิ้น สำหรับฟังก์ชัน จะจับคู่การเรียกกับนิยามฟังก์ชันที่ถูกต้องโดยคอมไพเลอร์ การรวมทำได้ทั้งที่คอมไพล์ไทม์หรือรันไทม์

การผูกมัดในช่วงต้น

นี่คือความหลากหลายของเวลารวบรวม ที่นี่จะเชื่อมโยงที่อยู่โดยตรงกับการเรียกใช้ฟังก์ชัน สำหรับการโอเวอร์โหลดฟังก์ชันเป็นตัวอย่างของการผูกในช่วงต้น

ตัวอย่าง

#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

การผูกมัดล่าช้า

นี่คือความแตกต่างของรันไทม์ ในการโยงประเภทนี้ คอมไพเลอร์จะเพิ่มโค้ดที่ระบุประเภทของอ็อบเจ็กต์ขณะรันไทม์ จากนั้นจึงจับคู่การเรียกที่มีคำจำกัดความ rightfunction ทำได้โดยใช้ฟังก์ชันเสมือน

ตัวอย่าง

#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