C++ 컴파일러가 만들어내는 함수는

class ClassName {}

일경우

class ClassName
{
public:
    ClassName() {}                                                // 생성자
    ClassName( const ClassName& ) {}                   // 복사 생성자      
    ~ClassName()                                                  // 소멸자
    ClassName& operator=( const ClassName& ) {}    // 대입 연산자
}
이중 사용치 않는 것은

class ClassName
{
private:
    ClassName& operator=( const ClassName* );               // 선언만
}

와 같이 선언하여 사용을 금하자~

Uncapyable 과 같은 클래스로 만들어서 private으로 상속 받아 사용하는 것도 방법


[출처]
Effective C++ - Scott Meyers / 곽재용

+ Recent posts