C++

this 포인터의 이해

Barbarian developer 2024. 9. 26.

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->nameperson1.name과 같은 의미입니다. 즉, this 포인터를 통해 person1 객체의 name 멤버 변수에 접근하는 것입니다.

 

this 포인터가 필요한 이유

  • 멤버 변수와 지역 변수 구분: 멤버 함수 내에서 멤버 변수와 이름이 같은 지역 변수를 사용할 때, this 포인터를 사용하여 멤버 변수를 명확하게 참조할 수 있습니다.
  • 객체 자신 반환: 멤버 함수에서 this 포인터를 반환하여 객체 자신을 반환할 수 있습니다. (연쇄 호출에 유용하게 사용됩니다.)

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

복사 생성자  (0) 2024.09.27
' : '과 ' :: '의 차이점  (0) 2024.09.26
c++클래스(2)  (0) 2024.09.25
c++ 참조  (0) 2024.09.25
c++ 클래스  (3) 2024.09.25

댓글