[C++] 연산자 종류들 - 산술, 비교/관계, 논리, 비트 등

[C++] 연산자 종류들


 

산술 연산자

연산자 이름 구문 오버로드 가능여부
대입 a = b Y
덧셈 a + b Y
뺄셈 a - b Y
단항 덧셈 + a Y
단항 뺄셈 - a Y
곱셈 a * b Y
나눗셈 a / b Y
나머지 a % b Y
증가 전위 ++a Y
후위 a++ Y
감소 전위 --a Y
후위 a-- Y

 


비교 연산자 / 관계 연산자

연산자 이름 구문 오버로드 가능여부
같음 a == b Y
같지 않음 a != b Y
크다 a > b Y
작다 a < b Y
크거나 작다 a >= b Y
작거나 같다 a <= b Y
삼단비교 a <=> b Y

 


논리 연산자

연산자 이름 구문 오버로드 가능여부
부정(NOT) !a Y
AND a && b Y
OR a || b Y

 


비트 연산자

연산자 이름 구문 오버로드 가능여부
비트 NOT ~a Y
비트 AND a & b Y
비트 OR a | b Y
비트 XOR a ^ b Y
비트 왼쪽 시프트 a << b Y
비트 오른쪽 시프트 a >> b Y

 


복합할당 연산자

연산자 이름 구문 오버로드 가능여부
덧셈 대입 a += b Y
뺄셈 대입 a -= b Y
곱셈 대입 a *= b Y
나눗셈 대입 a /= b Y
모듈러(나머지) 대입 a %= b Y
비트 AND 대입 a &= b Y
비트 OR 대입 a |= b Y
비트 XOR 대입 a ^= b Y
비트 왼쪽 시프트 대입 a <<= b Y
비트 오른쪽 시프트 대입 a >>= b Y

 


멤버와 포인터 연산자

연산자 이름 구문 오버로드 가능여부
포인터 배열 a[b] Y
포인터 *a Y
참조 &a Y
포인터 a에 할당된 객체의 멤버 b a->b Y
객체 a의 멤버 b a.b N
포인터 a에 할당된 객체 멤버 a->*b Y
객체 a의 b할당된 멤버 a.*b N

 


기타 연산자

연산자 이름 구문 오버로드 가능여부
함수 호출 a(a1, a2) Y
쉼표 a, b Y
삼항 연산자 a ? b : c N
범위 확인 a :: b N
size-of sizeof(a) / sizeof(자료형) N
자료형 식별 typeid(a) / typeid(자료형) N
캐스트 (자료형) a Y
저장소 할당 new 자료형 Y
저장소 할당(배열) new 자료형(n) Y
저장소 할당 취소 delete a Y
저장소 할당 취소(배열) delete[] a Y

자료 출처 https://ko.wikipedia.org/wiki/C%EC%99%80_C%2B%2B%EC%9D%98_%EC%97%B0%EC%82%B0%EC%9E%90