Language/C++
[C++] this 포인터
bugwasd
2015. 12. 2. 15:24
this 포인터는 자기참조 포인터이다. 즉, 자기 자신을 가리키는 용도로 사용된다.
만약 0x00번지에 할당된 객체의 멤버함수 내에서 this를 사용한다면, 0x00번지를 의미하는 포인터가 된다.
다음은 this를 포인터를 활용한 예이다.
1 2 3 4 5 6 7 8 9 | class AAA { int val; public: AAA(int val) { this->val = val; } }; |
위는 객체의 멤버변수와 생성자의 매개변수가 같은 이름을 사용하고 있다. 원래대로라면 어떤 변수이건간에 지역변수보다 우선시 될 수 없으므로 멤버변수에 접근할 수 없다.
하지만 this로 객체의 주소값을 가르켜 멤버변수에 접근하였다.
물론 매개변수와 멤버변수의 이름을 다르게 하면 쉽게 해결되지만 생각해야할 변수의 이름이 하나 줄어든 것 만으로도 큰 의미라고 할 수 있다.