본문 바로가기
STL/CHAPTER 1. 연산자 오버로딩

1. 연산자 오버로딩 정의 및 사용하기

by 자잘 2019. 12. 27.

 우리가 사용할 수 있는 연산자는 정말 다양하죠. + , - , * 등등 많습니다. 이런 연산자들은 기본 자료형에서만 사용이 가능합니다. 즉 우리가 class나 struct를 사용하여 만드는 사용자 정의형으로는 연산자를 이용할 수 없습니다. 왜냐하면 컴파일러 내부에 정의되어 있지 않기 때문입니다. 따라서 우리는 우리가 만든 자료형에 연산자를 사용하기 위하여 연산자 오버로딩을 하게 됩니다. 다음은 그 간단한 예시 입니다.

 

  사용자가 정의행 Point형 객채 p1 과 p2에 덧셈연산이 가능해졌습니다. 10 ~ 17라인까지의 연산자 오버로딩이 없었다면 불가능한 일입니다. Point 객체 두개에 덧셈 연산이 일어나게 되면 컴파일러는 Point 클래스에 정의되어 있는 operator+() 멤버 함수를 호출하게 되고 p2를 인자로 전달해 줍니다. 멤버 함수 내에서 x, y의 값을 각각 더하여 Point객체에 담아 리턴해주게 됩니다. p3는 이 객체를 받아서 자신의 멤버 변수를 설정하고 실행해주면 다음과 같이 결과가 나오게 됩니다.

 

'STL > CHAPTER 1. 연산자 오버로딩' 카테고리의 다른 글

0. const에 관하여  (0) 2019.12.27