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

C++의 생성자

<시간/>

생성자는 클래스의 새로운 객체가 생성될 때 실행되는 클래스의 함수입니다. 생성자는 클래스와 이름이 같고 반환 유형이 없으며 심지어 void입니다. 주로 클래스의 변수에 대한 초기 값을 제공하는 데 유용합니다.

생성자의 두 가지 주요 유형은 기본 생성자와 매개변수화된 생성자입니다. 이에 대한 자세한 내용은 다음과 같습니다.

기본 생성자

기본 생성자는 매개변수를 사용하지 않습니다. 프로그래머가 기본 생성자를 명시적으로 제공하지 않으면 컴파일러는 암시적 기본 생성자를 제공합니다. 이 경우 변수의 기본값은 0입니다.

기본 생성자를 보여주는 프로그램은 다음과 같습니다.

예시

#include <iostream>
using namespace std;
class A {
   private:
   int num1, num2 ;
   public:
   A() {
      num1 = 5;
      num2 = 7;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};
int main() {
   A obj;
   obj.display();
   return 0;
}

출력

num1 = 5
num2 = 7

위의 프로그램에서 클래스 A는 num1과 num2를 5와 7로 초기화하는 기본 생성자를 포함하고 있습니다. 또한 num1과 num2의 값을 출력하는 display() 함수도 포함하고 있습니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class A {
   private:
   int num1, num2 ;
   public:
   A() {
      num1 = 5;
      num2 = 7;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};

main() 함수에는 클래스 유형 A의 객체에 대한 객체 정의가 포함되어 있습니다. 그런 다음 display() 함수가 호출됩니다. 이것은 아래에 나와 있습니다.

A obj;
obj.display();

매개변수화된 생성자

매개변수화된 생성자는 객체가 생성될 때 객체를 초기화하기 위해 인수를 사용할 수 있습니다. 매개변수는 일반 함수에 추가되는 것처럼 매개변수화된 생성자에 추가됩니다. 매개변수화된 생성자는 암시적으로 또는 명시적으로 호출될 수 있습니다.

매개변수화된 생성자를 보여주는 프로그램은 다음과 같습니다.

예시

#include <iostream>
using namespace std;
class A {
   private:
   int num1, num2 ;
   public:
   A(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};
int main() {
   A obj(3,8);
   obj.display();
   return 0;
}

출력

num1 = 3
num2 = 8

위의 프로그램에서 클래스 A는 n1과 n2가 제공하는 값으로 num1과 num2를 초기화하는 매개변수화된 생성자를 포함합니다. 또한 num1과 num2의 값을 출력하는 display() 함수도 포함되어 있습니다. 이에 대한 코드 스니펫은 다음과 같습니다.

class A {
   private:
   int num1, num2 ;
   public:
   A(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};

main() 함수에는 클래스 유형 A의 객체에 대한 객체 정의가 포함되어 있습니다. 그런 다음 display() 함수가 호출됩니다. 이것은 아래에 나와 있습니다.

A obj(3,8);
obj.display();