Computer >> Máy Tính >  >> Lập trình >> C ++

Liên kết sớm và Liên kết muộn trong C ++

Trong phần này, chúng ta sẽ xem những gì là liên kết sớm và những gì là liên kết muộn trong C ++. Thebinding có nghĩa là quá trình chuyển đổi số nhận dạng thành địa chỉ. Đối với mỗi biến và chức năng, ràng buộc này được thực hiện. Đối với các chức năng, nó khớp lệnh gọi với định nghĩa chức năng phù hợp của trình biên dịch. Việc liên kết được thực hiện tại thời điểm biên dịch hoặc trong thời gian chạy.

Ràng buộc sớm

Đây là tính đa hình thời gian biên dịch. Ở đây nó liên kết trực tiếp một địa chỉ với lệnh gọi hàm. Đối với quá tải hàm, nó là một ví dụ về liên kết sớm.

Ví dụ

#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;
}

Đầu ra

In Base class

Ràng buộc muộn

Đây là đa hình thời gian chạy. Trong kiểu ràng buộc này, trình biên dịch thêm codethat xác định kiểu đối tượng trong thời gian chạy, sau đó khớp lệnh gọi với định nghĩa chức năng đúng. Điều này đạt được bằng cách sử dụng chức năng ảo.

Ví dụ

#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;
}

Đầu ra

In Derived class