생성자 default/delete

headkio·2020년 9월 11일
0

C++

목록 보기
19/35
post-thumbnail

생성자와 관련된 키워드이다.

default

compiler가 생성자를 자동으로 만들어 달라는 표현이다.
default가 없어도 자동으로 생성해주지만 다른 해석의 여지가 있다.
명확하게 작성해 주는게 좋다.

class MyClass
{
  public:
    MyClass() = default;
    MyClass(std::string name);
}

delete

compiler가 자동으로 만들어 주길 원하지 않을 때 사용한다.
private 영역에 빈생성자를 만드는 우회방법을 쓰지 말자.
(이럴 경우 에러 메시지도 정확하지 않다.)

class MyClass
{
  public:
    MyClass() = delete;
    MyClass(std::string name);
}
int main() 
{
  MyClass(); // 에러
}
profile
돌아서서 잊지말고, 잘 적어 놓자

0개의 댓글