operator bool()
을 오버로드했습니다. operator !()
도 너무 많이로드해야합니까? 언제, 왜. 도와 주셔서 감사합니다.C++ 연산자 오버로딩, 연산자 bool() 및 연산자!()
답변
개발자가 !myobject
을 말할 수 있도록하려면 operator!()
을 구현해야합니다. 여기서 myobject
은 클래스의 인스턴스입니다.
섹션 13.3.1.2는 지정하는 사용자 정의 형식
하는 내장 후보 포함 13.6에서 네드 후보 연산자 함수 드 인터넷의 모든 비교 것을의 목적으로 단항 연산자를 적용 할 때
- 가 동일한 오퍼레이터 이름이, 주어진 연산자 및
- 피연산자의 동일한 수를 수용하고
- 것은 피연산자 동의 주어진 피연산자가 13.3.3.1 및
- 에 따라 변환 될 수있는 유형은 비 템플릿 비회원 후보와 동일한 parameter-type-list를 갖지 않습니다.
그래서 컴파일러는 bool operator!(bool)
내장 및 사용자 정의 변환을 사용할 수 있지만 당신의 operator bool()
암시 적으로 호출 할 경우에만. operator bool()
은 거의 항상 임의의 정수 컨텍스트에서 사용되지 않도록 명시 적으로 지정됩니다. 여러 개의 사용자 정의 변환은 주석에 언급 된 chris와 같이 내장 후보 연산자 사이에 모호성을 만들 수 있습니다.
따라서 operator!()
을 직접 정의하는 것이 가장 좋습니다.
아주 좋습니다. 감사. –
thx @leftroundabout, 나는 형식을 엉망으로 만들고 심지어 알지도 못했다. –
- 1. 연산자 오버로딩 C++
- 2. C++ : 연산자 오버로딩. 이상한 타입 변환 연산자
- 3. 오버로딩 + 연산자
- 4. C++로 연산자 오버로딩
- 5. 연산자 오버로딩 C++ 조언
- 6. C++ 오버로딩 가상 + 연산자
- 7. C++에서 연산자 오버로딩
- 8. C++ 연산자 오버로딩 위해
- 9. C++ 오버로딩 : [] [] 연산자 오버로드
- 10. C#의 오버로딩 연산자 == 클래스
- 11. Allegro의 등호 연산자 오버로딩
- 12. 우정과 연산자 오버로딩 도움
- 13. 흥미로운 C++ 연산자 오버로딩 문제
- 14. C++ : 연산자 오버로딩 오류 : '&'토큰
- 15. C++ 연산자 + 및 연산자 + = 오버로드
- 16. autoboxing 및 unboxing 연산자 오버로딩
- 17. 연산자 오버로딩 및 템플릿 전문화
- 18. 복잡한 연산자 오버로딩
- 19. 오버로딩 산술 연산자
- 20. C에서 연산자 오버로딩?
- 21. 배열 첨자 연산자 오버로딩
- 22. 연산자 오버로딩 이상한 결과
- 23. C#에서 연산자 오버로딩 및 Linq 합
- 24. C++ 연산자 오버로딩 클래스 및 구조체
- 25. Bool 할당 연산자
- 26. '=='연산자 오버로딩 작업에 어려움을 겪고 있습니다. (C++)
- 27. C#의 새 연산자 및 가상 연산자
- 28. 오버로딩 << 연산자 :: ostream에
- 29. C# : 바이너리 연산자 오버로딩 : 형식을 포함하지 않고?
- 30. C++ 오버로딩 << 연산자 문제
어쩌면 하나 이상의 사용자 정의 변환이있을 수 있지만 그렇게하지 않으면 쉽게 수정됩니다. – chris
이 스택 오버플로 질문과 대답을 참조하십시오. http://stackoverflow.com/questions/4600295/what-is-the-meaning-of-operator-bool-const-in-c –
연산자 bool 및 연산자 사용에 대한이 기사! 도움이 될 수도 있습니다. http://www.artima.com/cppsource/safebool.html –