함수 선언에서 "= delete"의 의미 이해
C 11에서는 "= delete" 구문을 사용하여 기능을 효과적으로 방지합니다. 복사를 금지하거나 특정 변환을 제한하기 위해 일반적으로 사용됩니다.
복사 생성자 및 할당 연산자 삭제
아마도 "= 삭제"의 가장 일반적인 사용 사례는 다음과 같습니다. 복사를 금지합니다. 예를 들어 복사를 원하지 않는 "my_class"라는 클래스가 있는 경우 다음과 같이 선언할 수 있습니다.
class my_class { public: ... my_class(const my_class &) = delete; ... };
이 선언은 컴파일러가 "에 대한 기본 복사 생성자와 할당 연산자를 생성하는 것을 방지합니다. my_class."
원하지 않는 전환 방지
"=의 또 다른 용도 삭제"는 특정 유형 변환을 금지하는 것입니다. 예를 들어, "long long" 값으로만 구성하려는 클래스 "Z"가 있는 경우 "= delete"를 사용하여 더 작은 유형의 변환을 방지할 수 있습니다.
struct Z { public: ... Z(long long); // can initialize with a long long Z(long) = delete; // but not anything less };
추가 기능 수정자
"= 0"(기능을 순수 가상으로 설정) 및 "= delete"(기능을 삭제) 외에 함수), C에는 다른 함수 수정자가 없습니다. 그러나 "override" 및 "final"과 같은 다른 키워드를 사용하여 가상 함수의 동작을 수정할 수 있습니다.
위 내용은 C 함수 선언에서 '= 삭제'는 무엇을 의미합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!