프로그래밍/Modern c++

delete(삭제된 함수)

오늘의논리 2023. 3. 6. 22:26
728x90

예를들어 클래스 복사를 하게 하지 않겠다고 하면

 

#include <iostream>
using namespace std;

class Knight
{
public:

public:
	void operator=(const Knight& k) = delete; //복사를 못하게 하겠다.

//모든 것을 뚫는 창 vs 절대방패
friend class Admin;//어드민 클래스에는 private기능에 접근 권한을 열어주겠다.

private:
int _hp = 100;
};


class Admin
{
	public:
    void CopyKnight(const Knight& k)
    {
        Knight k1;
        k1 = k;//불가
    }
};

int main()
{
    Knight k1;
    Knight k2;

	k1 = k2; // 불가

    return 0;
}

void operator=(const Knight& k) = delete;

 

이부분처럼 복사기능을 삭제시켜 사용못하게 할수 있다(함수 및 기능 삭제라고 생각하면 될듯하다)

728x90