본문 바로가기
Dev Language/Modern C++ (C++11, 14)

C++ 11 : default, delete 키워드

by 미티치 2020. 8. 8.

default 
     컴파일러가 함수를 자동으로 생성하도록 명시적으로 지정

delete
     컴파일러가 함수를 자동으로 생성하지 않도록 명시적으로 지정

 

class    TEST
{
public:
    TEST() = default;
    TEST(const TEST&) = default;
    ~TEST() = default;
    TEST & operator=(const TEST) = delete;
    void* operator new(size_t) = delete;        // new로 할당하지 못하게 방지
};

 

Q. 멤버 변수를 기본 타입이 아닌 사용자가 정의한 클래스 타입으로 멤버변수를 갖고있는 클래스이면 
위에 처럼 TEST( const TEST& ) = default; 로 선언해도 깊은 복사가 이루어질까? 안될거같은데?