본문 바로가기

[C++]This 포인터

반응형

클래스 내에 일반 맴버 함수 내에 숨어 있는 포인터.

this 현재 실행되는 객체의 주소를 가르키는 것.

정적 멤버함수는 별개로 존재 하는 것.

정적 멤버함수와는 상관이 없다.

   

this포인터는 자기자신을 가르키고 있다. 예를 들어 pt라는 겍체를 사용해서 멤버함수를 호출했다면 This 포인터는 pt객체를 가르키는 것.

   

#include <iostream>

using namespace std;

   

class WhoAmI

{

public:

  int id;

   

  WhoAmI(int id_arg);

  void ShowYourself() const;

};

   

WhoAmI:: WhoAmI(int id_arg)

{

  id = id_arg;

}

   

void WhoAmI::ShowYourself() const

{

  cout << "{ID = " << id << ", this = " << this << "}\n";

}

   

int main()

{

  // 세 개의 객체를 만든다.

  WhoAmI obj1( 1);

  WhoAmI obj2( 2);

  WhoAmI obj3( 3);

   

  // 객체들의 정보를 출력한다.

  obj1.ShowYourself();

  obj2.ShowYourself();

  obj3.ShowYourself();

   

  // 객체들의 주소를 출력한다.

  cout << "&obj1 = " << &obj1 << "\n";

  cout << "&obj2 = " << &obj2 << "\n";

  cout << "&obj3 = " << &obj3 << "\n";

   

  return 0;

}

   

   

   

   

맴버함수의 호출이 일어날 때 다음과 같이 숨어 있는 가상의 코드가 실행된다고 생각할 수 있다.

반응형
-->