생성자는 클래스의 새로운 객체가 생성될 때 실행되는 클래스의 함수입니다. 생성자는 클래스와 이름이 같고 반환 유형이 없으며 심지어 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();