디폴트(default)”는 C++(또는 전반적인 프로그래밍 언어)에서 자주 쓰이는 개념인데, 문맥에 따라 의미가 조금씩 달라집니다. 단순히 말하면:

**“프로그래머가 명시적으로 지정하지 않았을 때 자동으로 사용되는 값이나 동작”**입니다.


1. 디폴트 값 (Default Value)

변수나 함수의 인자 등에 대해 초기값을 명시하지 않았을 때 자동으로 설정되는 값을 말합니다.

void greet(std::string name = "Guest") {
    std::cout << "Hello, " << name << std::endl;
}

greet();           // Hello, Guest
greet("HyeonMin"); // Hello, HyeonMin

2. 디폴트 생성자 (Default Constructor)

클래스에서 인자가 없는 생성자를 말합니다.

class Person {
public:
    Person() {
        std::cout << "Default constructor called\\n";
    }
};

Person p; // Person() 호출됨

C++11 이후에는 명시적으로 이렇게 쓸 수도 있어요:

Person() = default; // 컴파일러가 기본 생성자 생성하게 명시

3. 디폴트 멤버 초기화 (Default Member Initialization)

C++11부터 클래스 멤버 변수에 기본값을 직접 지정할 수 있게 되었어요.

class Person {
    int age = 20;           // 디폴트 값
    std::string name = "Hi";
};