본문 바로가기
프로그래밍/Modern c++

delete(삭제된 함수)

by 오늘의논리 2023. 3. 6.
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

'프로그래밍 > Modern c++' 카테고리의 다른 글

오른값 참조(rvalue reference)  (0) 2023.03.06
override  (0) 2023.03.06
enum class  (0) 2023.03.06
using  (0) 2023.03.06
nullptr  (0) 2023.03.06

댓글