(C++) 8.7 this 포인터와 연쇄 호출

이준우·2021년 11월 23일
0

s1과 s2의 주소를 알고 싶을 때에는, this라는 포인터를 사용하여 출력할 수 있다. 자기 자신의 주소를 출력해주는 것이 this이다.

우리가 그냥 setID(id)만 사용하는데, 이는 this ->가 생략되어 있는 것과 같다. 해당되는 변수의 주소에서 setID에 접근하는 것이다. Python에서 이이와같은 역할을 하는 것이 self이다.

this 포인터를 사용하는 경우가 여러가지가 있긴 하지만, 이는 추후에 많은 상황을 겪을 것이므로 그때 보도록 하자. 하지만 그 중에서 연쇄 호출에 대한 내용은 짚고 넘어가자.


보통 지금까지 우리가 배운 방식으론 이런식으로 출력해왔다. 하지만 이를 this와 연쇄호출을 이용하면 다음과 같이 코드를 구성할 수 있다.

Calc& add(int value) { m_value += value; return *this; } 이 부분이 정말 중요한 부분인데, Calc &add를 통해 참조하는 것을 볼 수 있다. 참조를 하므로 return은 해당 주소의 값을 리턴하는 것을 볼 수 있다. this는 주소를 return하는 것이고 주소에 *를 붙이면 주소안의 값을 리턴하는 것이므로 이러한 과정을 이해하자.

0개의 댓글