2010. 1. 24. 14:30
This는 자기 자신을 가르키는 용도로 사용된다. 그래서 자기 참조 포인터라 한다.
class Member
{
int Test1;
int Test2;
public:
Member(int Test1, int Test2 )
{
this->Test1 = Test1;
this->Test2 = Test2;
}
virtual ~Member();
void View()
{
cout<<Test1 <<endl <<Test2<<endl;
}
};
int main()
{
Member M(1, 2);
M.View();
return 0;
}
Test1, Test2 은 매개 변수 와 클래스 멤버변수와 이름이 겹친다
하지만 매개변수는 지역변수이므로 그 안에서 멤버변수 Test에는 접근할 수 없다
방법은 this 포인터를 이용해서 해당 객체의 멤버변수를 직접 가르키면 된다
class Member
{
public:
Member * GetThis()
{
return this;
}
};
int main()
{
Member * p1 = new Member();
cout<<"포인터 p1 " << p1<<endl;
cout<<"p1 의 this " << p1->GetThis()<<endl;
Member * p2 = new Member();
cout<<"포인터 p2 " << p2<<endl;
cout<<"p2 의 this " << p2->GetThis()<<endl;
return 0;
}