본문 바로가기

Programming/C & C++

[c++11] delete - 대입 연산 및 값 전달 차단

클래스의 동적 메모리 할당 시 빈번하게 발생하는 문제들(ex. dangling pointer)을 회피하는 가장 좋은 방법은 복사 및 대입을 막아버리는 것이다.

class Foo {
public:
    Foo(int data);
    Foo(const Foo& src) = delete;
    ~Foo();
    Foo& operator=(const Foo& rhs) = delete;
}

c++11부터 추가된 delete 키워드를 통해 막을 수 있다.

복사 또는 대입 연산이 발생하면 컴파일 시 에러가 발생한다.