operator-()와 같이 오버로드하면 object의 왼쪽에 사용되지만 operator()와 같은 오버로드()는 객체의 오른쪽에 사용됩니다. 어떤 연산자가 왼쪽에서 사용되고 어떤 연산자가 오른쪽에서 사용되어야하는지 어떻게 알 수 있습니까?C++에서 연산자 오버로드
6
A
답변
3
operator precedence chart을보세요. 이렇게하면 연산자가 연결하는 방향을 알 수 있습니다 (바인딩). 일부 연산자는 이진 및 단항 -
과 같이 의미가 다른 여러 형식이 있음에 유의하십시오. 이러한 경우 :,
T operator-()
및 예컨대 여러 과부하가있을 수 있습니다 :
T operator-(const T &o)
컴파일러는 연산자의 구문 해석을 기반으로 올바른 하나를 선택합니다.
이 내용도 참조하십시오. set of guidelines.
+0
'operator-()'는 실제로 아무것도 반환하지 않습니다. 값의 부정 또는 값의 차이 인 적절한 유형의 값을 반환하면 안됩니까? –
+0
잡아줘서 고마워, 조나단. 이제 해결되었습니다. –
1
대부분의 단항 연산자는 피연산자의 지정된 부분에만 배치 할 수 있습니다. 두 특수한 경우, ++
및 --
은 this FAQ을 참조하십시오.
관련 문제
- 1. C에서 액세스 오버로드 된 연산자
- 2. 오버로드 연산자 ==
- 3. 오버로드 연산자 []
- 4. 연산자 오버로드
- 5. C++ 연산자 + 및 연산자 + = 오버로드
- 6. 자바 연산자 오버로드
- 7. C++ : 상속과 오버로드 연산자
- 8. C++ 연산자() 괄호 오버로드
- 9. C++에서 오버로드(), [] 연산자
- 10. C++ 정적 연산자 오버로드
- 11. 스트림 연산자 오버로드 문제
- 12. C++ 연산자 오버로드
- 13. 클래스의 new 연산자 오버로드
- 14. F #의 오버로드 연산자 : (/)
- 15. 템플릿 관계 연산자 오버로드
- 16. 템플릿이있는 연산자() 오버로드 C++
- 17. C++ 'this'와 연산자 오버로드
- 18. C++ 친구 연산자 + 오버로드
- 19. C# 연산자 오버로드
- 20. C++ 연산자 오버로드
- 21. 연산자 오버로드 <<
- 22. 스칼라 : 메서드 \ 연산자 오버로드
- 23. C++ 오버로딩 : [] [] 연산자 오버로드
- 24. postfix ++ 연산자 오버로드
- 25. C++ 맵에 대한 연산자 오버로드
- 26. 오버로드 된 연산자 인라이닝 C++
- 27. 오버로드 된 연산자 <<
- 28. C++에서 삽입 연산자 오버로드
- 29. C++ 세계적으로 오버로드 된 연산자 =
- 30. 합성 변환 오버로드 C++ 연산자
이것은 간단한 대답을 가지고 있지만, 프로그래밍에 익숙하지 않은 사람의 관점에서 보면 이것이 두통의 원인이 될 수 있다고 상상할 수 있습니다. +1 –