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

C++ 내부?

<시간/>

여기서 우리는 클래스 내부를 볼 것입니다. 그 전에 내부와 관련된 기본 생성자를 볼 것입니다. 기본 생성자는 인수를 사용하지 않는 하나의 생성자(사용자 또는 컴파일러에 의해 정의됨)입니다. 이제 기본 생성자가 사용되는 이유가 무엇입니까?

기본 생성자가 제공되지 않으면 컴파일러는 기본 생성자를 암시적으로 선언합니다. 기본 생성자는 일부 클래스 내부를 초기화하는 데 사용됩니다. 클래스의 데이터 멤버에는 영향을 미치지 않습니다. 컴파일러는 몇 가지 다른 상황에서 기본 생성자를 삽입합니다. 기본 생성자가 있는 다른 클래스에서 클래스가 파생되거나 기본 생성자가 있는 다른 클래스의 개체를 포함하는 한 클래스에서 파생된다고 가정합니다. 컴파일러는 기본 클래스 또는 현재 개체 내부에 있는 개체의 기본 생성자를 호출하는 코드를 삽입합니다.

아이디어를 얻기 위해 하나의 코드를 살펴보겠습니다.

예시

#include<iostream>
using namespace std;
class Base {
   public:
      // compiler will create one constructor for the class "Base"
};
class ClassA {
   public:
   ClassA(){
      cout << "ClassA Constructor defined by user" << endl;
   }
   int x; //it will not be initialized
};
class ClassB : public ClassA {
   //compiler will create ClassB constructor and add some code to call
   ClassA constructor
};
class ClassC : public ClassA {
   public:
      ClassC() { //user defined consturctor, but compiler will add
         code to call A constructor
         cout << "User defined ClassC Constructor" << endl;
   }
};
class ClassD {
   public:
      ClassD(){
         // User defined default constructor. The compiler will add
         code to call object of ClassA
         cout << "User-defined consturctor for ClassD Constructor" <<
         endl;
   }
   private:
      ClassA obj;
};
int main() {
   Base baseObj;
   ClassB b;
   ClassC c;
   ClassD d;
}

출력

ClassA Constructor defined by user
ClassA Constructor defined by user
User defined ClassC Constructor
ClassA Constructor defined by user
User-defined consturctor for ClassD Constructor