[C++] default와 delete

Date:     Updated:

카테고리:

태그:

이 글은 C++ default와 delete를 공부하고 정리한 글입니다

default 키워드

  • default 키워드를 사용하면, 컴파일러가 특정한 생성자, 연산자 및 소멸자를 만들어 낼 수 있음
  • 그래서, 비어 있는 생성자나 소멸자를 구체화할 필요가 없음
  • 또한 기본 생성자, 연산자 및 소멸자를 더 분명하게 표시할 수 있음
    • 명확하게 표현하는 것은 항상 좋다

    코드 예제

    // Dog.h
    class Dog
    {
    public :
        Dog() = default;
    };
    

delete 키워드

  • 컴파일러가 자동으로 생성자를 만들어 주길 원치 않는다면 delete 키워드를 사용
  • 올바른 에러 메시지도 나옴

    코드 예제

    // Dog.h
    class Dog
    {
    public :
        Dog() = default;
        Dog(const Dog& other) = delete;
    };
    
    // Main.cpp
    #include "Dog.h"
    int main()
    {
        Dog myDog;
        Dog copiedMyDog(myDog);   // 에러
    }
    

베스트 프랙티스

  • 컴파일러가 코드를 생성하는 암시적 방식에 기댈 필요가 없음
  • 명확해야 함
  • 어디에나 default / delete 키워드를 넣자


참조

포큐아카데미 C++ 언매니지드 프로그래밍



💻 열심히 공부해서 작성 중이니 오류나 틀린 부분이 있을 경우 
  언제든지 댓글 혹은 메일로 알려주시면 감사하겠습니다! 😸

맨 위로 이동하기

Cpp 카테고리 내 다른 글 보러가기

댓글 남기기