C++ this 포인터

this 포인터는 동일 클래스를 이용해 여러개의 인스턴스가 생성될 때 멤버 변수의 경우 각각 메모리를 할당받아 동작하지만 멤버 함수의 경우 메모리 공간을 공유하기 때문에 이를 구분하기 위해 사용된다.

1
2
3
4
5
6
7
8
9
10
class Student {
 
public:
    studentAge(int age) {
        this>age = age
    }
 
private:
    int age;
};
cs

보통 위처럼 멤버변수와 매개변수가 동일할때 멤버변수를 명확히 하기위해서 사용되거나 (5행의 this->age는 멤버변수를 뜻함)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Student {
 
public:
    void printStudent() {
        cout << this << endl;
    }
 
private:
    
};
 
int main {
    Student st1;
    cout << “st1의 주소 : “;
    st1.printStudent();
    cout << &st1 << endl;
 
    return 0;
}
 
cs

위처럼 객체 자신의 주소를 리턴할때 사용한다.

관련글

제목 작성자 작성일