티스토리 뷰
반응형
* 연산자 함수를 만들지 못하는 연산자의 종류(오버로딩 제한)
c++의 모든 연산자들이 오버로딩의 대상이 되는 것은 아니다. 다음과 같이 오버로딩이 불가능한 연산자들도 있다.
. 멤버 접근 연산자
.* 멤버 포인터 연산자
:: 범위 지정 연산자
?: 조건 연산자(3항 연산자)
sizeof 바이트 단위 크기 계산
typeid RTTI 관련 연산자
static_cast 형변환 연산자
dynamic_cast 형변환 연산자
const_cast 형변환 연산자
reinterperet_cast 형변환 연산자
연산자에 대해서 제한하는 이유는 c++의 문법규칙을 보존하기 위해서다. 만약에 위의 연산자들까지 오버로딩을 허용해 버린다면, c++의 문법규칙에 어긋나는 문장의 구성이 가능해지고, c++을 보다 혼란스러운 언어로 만들 수 있기 때문이다.
참고로, 위의 연산자들을 오버로딩 해야만 하는 상황이 딱히 존재하지 않기 때문에 이 연산자들로 오버로딩을 굳이 하겠다는 생각을 할 필요는 없다.
반응형
'Programming > C++' 카테고리의 다른 글
[c++]string class 구조짜기 (0) | 2018.03.16 |
---|---|
[c++]연산자 함수, 연산자 중복 (0) | 2018.03.14 |
[c++]프렌드(friend) (1) | 2018.03.14 |
[c++]동적 바인딩을 이용한 Stack, Queue 구조 짜기 (0) | 2018.03.14 |
[c++]순수가상함수 (0) | 2018.03.13 |
댓글
공지사항