This 포인터의 개념
C++에서 this 포인터는 객체 자신을 가리키는 숨겨진 포인터입니다.
C++에서 멤버 함수는 여러 객체에 의해 공유되지만, 각 객체는 자신만의 멤버 변수를 가지고 있습니다.
멤버 함수는 this 포인터를 통해 자신을 호출한 객체의 멤버 변수에 접근할 수 있습니다.
멤버 함수가 호출될 때마다 컴파일러는 몰래 this 포인터를 함수에 전달합니다.
this 포인터는 자신을 호출한 객체의 주소를 가지고 있기 때문에, 멤버 함수는 this 포인터를 통해 자신을 호출한 객체의 멤버 변수에 접근할 수 있는 것입니다.
#include <iostream>
class Person
{
public:
std::string name;
int age;
void introduce()
{
std::cout << "이름: " << this->name << ", 나이: " << this->age << std::endl;
}
};
int main()
{
Person person1;
person1.name = "John Doe";
person1.age = 30;
person1.introduce();
return 0;
}
<출력문>
이름: John Doe, 나이: 30
위 예시에서 introduce() 함수 내에서 this->name은 person1.name과 같은 의미입니다. 즉, this 포인터를 통해 person1 객체의 name 멤버 변수에 접근하는 것입니다.
this 포인터가 필요한 이유
- 멤버 변수와 지역 변수 구분: 멤버 함수 내에서 멤버 변수와 이름이 같은 지역 변수를 사용할 때, this 포인터를 사용하여 멤버 변수를 명확하게 참조할 수 있습니다.
- 객체 자신 반환: 멤버 함수에서 this 포인터를 반환하여 객체 자신을 반환할 수 있습니다. (연쇄 호출에 유용하게 사용됩니다.)
댓글