Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

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

지연 바인딩

이것은 런타임 다형성입니다. 이 유형의 바인딩에서 컴파일러는 런타임에 개체 유형을 식별한 다음 호출을 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