클래스 내에 일반 맴버 함수 내에 숨어 있는 포인터.
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;
}
맴버함수의 호출이 일어날 때 다음과 같이 숨어 있는 가상의 코드가 실행된다고 생각할 수 있다.
'About 프로그래밍!!! > C++' 카테고리의 다른 글
[C++] 포함. (0) | 2010.06.29 |
---|---|
[C++]과제 3 객체로 만들어보기.//객체에서 배열쓰기. (0) | 2010.06.25 |
[C++]클래스에 넣을 수 있는 다른 것들. (0) | 2010.06.25 |
[C++]과제 8. (0) | 2010.06.24 |
[C++]정적멤버 함수에서 객체 생성하기 (0) | 2010.06.23 |