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 |
위처럼 객체 자신의 주소를 리턴할때 사용한다.