생성자와 관련된 키워드이다.
compiler가 생성자를 자동으로 만들어 달라는 표현이다.
default가 없어도 자동으로 생성해주지만 다른 해석의 여지가 있다.
명확하게 작성해 주는게 좋다.
class MyClass
{
public:
MyClass() = default;
MyClass(std::string name);
}
compiler가 자동으로 만들어 주길 원하지 않을 때 사용한다.
private 영역에 빈생성자를 만드는 우회방법을 쓰지 말자.
(이럴 경우 에러 메시지도 정확하지 않다.)
class MyClass
{
public:
MyClass() = delete;
MyClass(std::string name);
}
int main()
{
MyClass(); // 에러
}