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; 로 선언해도 깊은 복사가 이루어질까? 안될거같은데?
'Dev Language > Modern C++ (C++11, 14)' 카테고리의 다른 글
C++ 11 : 지연 평가 (0) | 2020.08.08 |
---|---|
C++ 11 : 일급 함수 (1)다른 함수의 매개변수로 함수 전달 (0) | 2020.08.08 |
C++ 11 : 열거타입 enum (0) | 2020.08.08 |
C++ 11 : nullptr (0) | 2020.08.08 |
C++ 11 : std::function 함수 객체? 함수면 함수고 객체면 객체인데, 함수 객체는 무엇인가 ? (0) | 2020.08.08 |