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