1. delete 활용

(1) class의 복사 연산자 사용 막기 - class의 private를 이용

class Knight
{
public:


private:
    void operator=(const Knight& k) { }
    
private:
    int _hp = 100;
};

위와 같이 작성하면 class 내부에서는 활용이 가능하다(또는 friend class를 사용하여 우회할 수도 있다).

 

(2) class의 복사 연산자 사용 막기 - class 내부에서 선언하고 구현부를 생략하기

class Knight
{
public:


private:
    void operator=(const Knight& k);
    
private:
    int _hp = 100;
};

 

 

(3) class의 복사 연산자 사용 막기 - delete 사용

class Knight
{
public:


public:
    void operator=(const Knight& k) = delete;
    
private:
    int _hp = 100;
};

 delete를 사용하면 어디에서든 접근 불가능하게 만들 수 있다(함수를 삭제).

'기초 C++ 스터디 > 모던 C++' 카테고리의 다른 글

10-7. 오른값 참조(Rvalue Reference)  (0) 2023.06.22
10-6. override, final  (0) 2023.06.20
10-4. enum class  (0) 2023.06.20
10-3. nullptr  (0) 2023.06.20
10-2. 중괄호 초기화  (0) 2023.06.20