삭제 된 클래스 T의 암시 적 선언 또는 디폴트 복사 할당 연산자가 정의 된 암시 적으로 선언 복사 할당 연산자 삭제 다음 중 하나에 해당 지역 :
T has a non-static data member that is const
T has a non-static data member of a reference type.
T has a non-static data member that cannot be copy-assigned (has deleted, inaccessible, or ambiguous copy assignment operator)
T has direct or virtual base class that cannot be copy-assigned (has deleted, inaccessible, or ambiguous move assignment operator)
T has a user-declared move constructor
T has a user-declared move assignment operator
은 그래서 삭제를 야기 아닌 이유는 무엇인지 알려줍니다?
T has a non-static data member of a reference type.
이 있는지 여부
삭제 된 연산자를 다루는 내 수업에 충분합니다 : 사람에 대해 설명 할 수T& T:operator=(T& t){};
을 내가 참조 형식 인 기본 클래스의 멤버가있는 경우.
명시 적으로 return *this
을 선언하거나 내게 컴파일러 (g ++)가이를 처리하도록 할 것과 같은 내 operator=
에 무엇인가해야합니까? 참조 회원과 특별한 관계가 있어야합니까? 죄송합니다 멍청한 질문에 대한하지만 C + +를 처음으로 관리 언어 (C# 및 Java) 시작했다.
좋은 답변 - 당신도 반환 *을 덮어 로이 하나를 선택했습니다. 나는 C++을 즐기고 있지만 혼란에 빠지기 쉽다는 것을 알 수 있습니다. – Luthervd