본문 바로가기
[ C++ ]/- C++ 문법정리

C++ 17 [연산자 오버로딩]

by MRG 2023. 4. 14.
728x90
반응형

▣ 연산자 오버로딩 : 연산자 중첩, 연산자 의미를 확대해서 지정, 연산자 중복

 

▣ string 객체를 사용해서 문자열 + 문자열로,  (+) 연산자 오버로딩 

 

▣ 단항 연산자 : 예시) x++, ++x, y--, --y : 하나의 항이 존재하는 연산자

 

▣ 이항 연산자 : 예시) x+y, x-y, x*y, x/y : 두 항이 존재하는 연산자

 

▣ 자료 참고

https://namu.wiki/w/%EC%9D%B4%ED%95%AD%EC%97%B0%EC%82%B0

 

▣ 전치(선처리): ++x , 연산 후 대입

 

▣ 후치(후처리) : x++, 참조 후 연산, 

 

▣ 둘 다 +1 연산, --x, x-- 도 가능

 

▣ 선치 연산자오버로딩 함수 선언 방법 : Player Player::operator++()

 

▣ operator++ :  함수이름, 객체대입을 하고 호출한다고 생각하면 된다,

 

▣ ++p가  operator++에 객체를 전달하며 호출

 

후치 연산자오버로딩 함수 선언 방법 : Player Player::operator++(int)  매개변수에 자료형을 넣으면 된다.

 

▣ *this : 객체에 있는 모든 매개변수 반환

 

▣ 이항연산자 오버로딩 함수 정의 방법 : Player Player::operator +(Player p2) 

 

▣ operator + : 위에서 이야기했던 것처럼 함수이름으로 생각, p1 첫 피연산자를 operator +에 가져온다고 생각하면 된다.

 

▣ hp + p2.hp == p1.hp + p2.hp 와 같다고 생각하면 된다. 

 

▣ friend Player operator+(Player); : 프렌드 키워드를 사용해서 외부에 있는 연산자오버로딩함수를 접근하게 할 수 있다.

 

▣ Player operator +(Player p1, Player p2) == p1 + p2는 각각 매개변수에 객체가 전달된다.

 

▣ 연산자 오버로딩(연산자 중복) : 원래 있던 연산자를 새로운 연산처리를 추가하는 것, 새로운 기호로 연산자를 만들 수 없다.

 

▣ 연산자 오버로딩은 클래스와 관계가 되어 있어야 한다.

 

▣ 연산자 오버로딩은 피연산자의 개수나 연산의 우선순위를 바꿀 수 없다.

728x90
반응형

'[ C++ ] > - C++ 문법정리' 카테고리의 다른 글

C++ 19 [가상함수, 오버라이딩]  (0) 2023.04.20
C++ 18 [상속, 다중상속, 가상상속]  (0) 2023.04.19
C++ 16 [객체 반환]  (0) 2023.04.13
C++ 15 [friend 함수, 클래스]  (0) 2023.04.13
C++ 14 [유니폼 초기화]  (0) 2023.04.12

댓글