“디폴트(default)”는 C++(또는 전반적인 프로그래밍 언어)에서 자주 쓰이는 개념인데, 문맥에 따라 의미가 조금씩 달라집니다. 단순히 말하면:
**“프로그래머가 명시적으로 지정하지 않았을 때 자동으로 사용되는 값이나 동작”**입니다.
변수나 함수의 인자 등에 대해 초기값을 명시하지 않았을 때 자동으로 설정되는 값을 말합니다.
void greet(std::string name = "Guest") {
std::cout << "Hello, " << name << std::endl;
}
greet(); // Hello, Guest
greet("HyeonMin"); // Hello, HyeonMin
클래스에서 인자가 없는 생성자를 말합니다.
class Person {
public:
Person() {
std::cout << "Default constructor called\\n";
}
};
Person p; // Person() 호출됨
C++11 이후에는 명시적으로 이렇게 쓸 수도 있어요:
Person() = default; // 컴파일러가 기본 생성자 생성하게 명시
C++11부터 클래스 멤버 변수에 기본값을 직접 지정할 수 있게 되었어요.
class Person {
int age = 20; // 디폴트 값
std::string name = "Hi";
};