산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 생성자: 기본 인자로 유연한 객체 생성하기

생성자(Constructor)는 클래스의 특수 멤버 함수로, 객체 생성 시 자동 호출됩니다. 이는 객체를 값이나 기본 설정으로 초기화하는 데 사용됩니다.

C++의 기본 인자(Default Arguments)는 함수나 생성자 매개변수에 기본값을 지정할 수 있게 합니다.

기본 인자를 가진 생성자

기본 인자를 가진 생성자는 선택적 매개변수를 사용해 객체를 생성할 수 있게 합니다. 매개변수에 기본값이 제공되므로, 사용자가 값을 전달하지 않으면 기본값이 사용됩니다.

문법

class ClassName {
public:
    ClassName(parameter_Type parameter_Name = default_Value, parameter_Type2 parameter_Name2 = default_Value2);
};

기본 인자 생성자 예제

#include <iostream>
using namespace std;

// 기본 인자를 가진 함수
void printMessage(string message = "Hello, Tutorialspoint Learner") {
    cout << message << endl;
}

int main() {
    // 인자 없이 호출: 기본 메시지 출력
    printMessage(); // "Hello, Tutorialspoint Learner"
    // 사용자 지정 인자 전달: 기본값 오버라이드
    printMessage("Hi, there!"); // "Hi, there!"
    return 0;
}

출력

Hello, Tutorialspoint Learner
Hi, there!

설명

다중 기본 인자 생성자

다중 기본 인자 생성자는 둘 이상의 매개변수에 기본값을 지정해 더 큰 유연성을 제공합니다.

예제

#include <iostream>
using namespace std;

class Box {
public:
    int length, width, height;
    // 다중 기본 인자 생성자
    Box(int l = 5, int w = 10, int h = 2) {
        length = l; width = w; height = h;
    }
    void display() {
        cout << "Length: " << length << ", Width: " << width << ", Height: " << height << endl;
    }
};

int main() {
    Box box1;           // 모든 기본값 사용
    Box box2(15);       // length만 지정
    Box box3(15, 20);   // length, width 지정
    Box box4(15, 20, 25); // 모두 지정

    box1.display(); // Length: 5, Width: 10, Height: 2
    box2.display(); // Length: 15, Width: 10, Height: 2
    box3.display(); // Length: 15, Width: 20, Height: 2
    box4.display(); // Length: 15, Width: 20, Height: 25
    return 0;
}

출력

Length: 5, Width: 10, Height: 2
Length: 15, Width: 10, Height: 2
Length: 15, Width: 20, Height: 2
Length: 15, Width: 20, Height: 25

설명

기본 인자 생성자의 주요 특징

일반 함수와 유사하지만 객체 생성 시 더 큰 유연성과 편의성을 제공합니다.

1. 매개변수 기본값과 객체 생성 유연성

생성자는 하나 이상의 매개변수에 기본값을 가질 수 있으며, 호출자가 인자를 제공하지 않을 때 사용되고 다양한 방식으로 객체 생성을 허용합니다.

2. 다중 생성자 오버로드 회피

인자 조합마다 생성자를 오버로드하면 코드가 방대해지지만, 기본 인자 사용 시 생성자 하나로 다양한 케이스 자동 처리 가능합니다.

3. 기본 인자의 순서

다중 기본값 매개변수 시, 오른쪽부터 기본값을 주기 시작하면 중간에 기본값 없는 매개변수를 둘 수 없습니다.

Box(int l = 1, int w); // 잘못됨: 'w'에 기본값 없는데 'l'에 있음

4. const 멤버와 기본 인자 사용

클래스에 const 멤버가 있으면 생성자에서 기본 인자로 초기화를 쉽게 할 수 있습니다.

class Box {
public:
    const int length, width;
    Box(int l = 5, int w = 10) : length(l), width(w) {}
};

이 생성자는 기본 인자(length=5, width=10)를 사용해 const 멤버를 초기화합니다.

C 언어

  1. C# 인덱서(Indexer) 마스터하기: 객체를 배열처럼 사용하기
  2. C 프로그래밍: 타입 캐스팅과 변환 마스터하기
  3. C 프로그래밍 입문: 시스템 프로그래밍의 기초 다지기
  4. C++ 데이터 구조: 배열, 구조체, 포인터로 효율적인 프로그램 만들기
  5. C# 변수 완벽 이해: 타입, 저장소, 사용법 총정리
  6. 2026 파워셸(PowerShell) 면접: 전문가 질문 40선 및 답변으로 성공하기
  7. C# 무명 메서드(Anonymous Methods): 대리자 사용 간소화
  8. C# sealed 클래스와 메서드: 상속/오버라이딩 제한으로 코드 안전성·성능 높이기
  9. C++ 예외 처리 마스터: try, catch, throw 실전 예제
  10. C 언어에서 1차원 및 2차원 배열을 함수에 전달하는 방법 – 실전 가이드