fullstack

[C++] this 포인터

Language/C++

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로 객체의 주소값을 가르켜 멤버변수에 접근하였다.

물론 매개변수와 멤버변수의 이름을 다르게 하면 쉽게 해결되지만 생각해야할 변수의 이름이 하나 줄어든 것 만으로도 큰 의미라고 할 수 있다.


'Language > C++' 카테고리의 다른 글

[C++] 복사 생성자  (0) 2015.12.02
[C++] friend 선언  (0) 2015.12.02
[C++] 생성자(Constructor)와 소멸자(Destructor)  (0) 2015.11.30
[C++] 캡슐화 (EnCapsulation)  (0) 2015.11.30
[C++] 정보은닉 (Information Hiding)  (0) 2015.11.30