C++에서는 컴파일 시간 다형성을 지원합니다. 컴파일 시간 다형성의 예는 함수 오버로딩과 연산자 오버로딩입니다.
연산자 오버로딩에 대한 몇 가지 규칙이 있습니다. 이러한 규칙은 다음과 같습니다.
-
내장 연산자만 오버로드할 수 있습니다. 일부 연산자가 C++에 없으면 오버로드할 수 없습니다.
-
오퍼레이터의 아리티는 변경할 수 없습니다.
-
연산자의 우선 순위는 동일하게 유지됩니다.
-
오버로드된 연산자는 함수 호출 연산자 "()"를 제외하고 기본 매개변수를 보유할 수 없습니다.
-
내장 데이터 유형에 대한 연산자를 오버로드할 수 없습니다. 최소한 하나의 사용자 정의 데이터 유형이 있어야 합니다.
-
할당 "=", 첨자 "[]", 함수 호출 "()" 및 화살표 연산자 "->" 이러한 연산자는 친구 함수가 아니라 멤버 함수로 정의해야 합니다.
-
할당 "=", 주소 "&" 및 쉼표 ","와 같은 일부 연산자는 기본적으로 오버로드됩니다.