본문 바로가기
IT/c++

C++ 디폴트 생성자: 객체 초기화의 기본과 활용

by 뉴코딩맨 2023. 8. 2.
C++에서 디폴트 생성자(Default Constructor)는 매개변수가 없는 생성자로, 객체가 생성될 때 호출되는 특별한 함수입니다. 만약 클래스에 사용자가 직접 생성자를 정의하지 않았다면, 컴파일러는 자동으로 디폴트 생성자를 생성합니다. 이 글에서는 C++ 디폴트 생성자의 개념과 활용 방법에 대해 알아보겠습니다.
 
 

1. 디폴트 생성자란 무엇인가?

디폴트 생성자는 클래스에 매개변수가 없는 생성자로, 아무런 매개변수 없이 객체를 생성할 때 호출됩니다. 사용자가 생성자를 직접 정의하지 않은 경우, 컴파일러가 자동으로 디폴트 생성자를 생성하여 객체를 초기화합니다.
 

2. 디폴트 생성자의 동작 방식

디폴트 생성자는 매개변수가 없으므로, 클래스 내의 모든 멤버 변수를 기본값으로 초기화합니다. 기본값은 해당 변수의 데이터 타입에 따라 다를 수 있으며, 정수형 변수는 0으로 초기화되고, 포인터 변수는 nullptr로 초기화됩니다.
 

3. 디폴트 생성자의 활용

디폴트 생성자는 클래스의 멤버 변수를 초기화하는 기본적인 방법입니다. 클래스에 매개변수가 없는 생성자를 정의하지 않은 경우, 컴파일러가 자동으로 디폴트 생성자를 생성하여 객체를 초기화합니다. 또한 사용자가 매개변수가 있는 생성자를 정의한 경우에도 디폴트 생성자를 추가로 정의하여 다양한 초기화 방법을 제공할 수 있습니다.
 
 

4. 디폴트 생성자의 사용 예제

다음은 디폴트 생성자를 사용하여 학생 객체를 초기화하는 예제입니다.
 
#include <iostream>
#include <string>
using namespace std;

class Student {
private:
    string name;
    int age;
    int studentId;

public:
    // 디폴트 생성자 정의
    Student() {
        name = "Unknown";
        age = 0;
        studentId = 0;
    }

    // 매개변수가 있는 생성자 정의
    Student(string n, int a, int id) {
        name = n;
        age = a;
        studentId = id;
    }

    void displayInfo() {
        cout << "이름: " << name << endl;
        cout << "나이: " << age << endl;
        cout << "학번: " << studentId << endl;
    }
};

int main() {
    // 디폴트 생성자를 사용하여 객체 초기화
    Student s1;

    // 매개변수가 있는 생성자를 사용하여 객체 초기화
    Student s2("홍길동", 20, 2023001);

    // 객체 정보 출력
    cout << "학생 정보 1:" << endl;
    s1.displayInfo();

    cout << "학생 정보 2:" << endl;
    s2.displayInfo();

    return 0;
}

 

5. 결론

이 글에서는 C++ 디폴트 생성자에 대해 알아보았습니다. 디폴트 생성자는 매개변수가 없는 생성자로, 객체를 초기화하는 기본적인 방법을 제공합니다. 사용자가 생성자를 직접 정의하지 않은 경우, 컴파일러가 자동으로 디폴트 생성자를 생성하여 객체를 초기화합니다.

 

 

C++ 멤버 이니셜라이저: 객체 초기화의 효율적인 방법

C++에서 멤버 이니셜라이저(Member Initializer)는 객체의 멤버 변수를 초기화하는 데 사용되는 특별한 구문입니다. 이니셜라이저는 생성자 함수의 몸체 부분 이전에 멤버 변수를 초기화하므로, 객체

newcodingman.tistory.com

 

댓글