출처 : 윤성우의 열혈 c++ 프로그래밍 ,두들낙서의 C/C++ 강좌
A Obj1
B Obj2 생성..
& Obj1 , &Obj2 출력시 해당 주소값도 출력되지만 클래스 타입인 A,B역시 같이 출력된다.
따라서 Obj1, Obj2 안에서의 'this'가 가르키는것은 주소값(0x100, 0x200) 과 더불어 데이터 타입인 A,B역시 같이 가르키고 있는 것 이다.
Obj1의 멤버변수 'm'이 존재할 시 this -> m = 50 ; 이라고 할당하면 해당 값이 할당한 값으로 설정된다.
this
" 객체 자신을 가르키는 포인터다."
this 포인터의 이해
#include <iostream>
using namespace std;
class SoSimple
{
private:
int num;
public:
SoSimple(int n) : num(n)
{
cout << "num=" << num << " , ";
cout << "address: " << this << endl; //주소값출력
}
void ShowSimpleData()
{
cout << num << endl;
}
SoSimple *GetThisPointer()
{
return this;
}
};
int main(void)
{
SoSimple sim1(100);
SoSimple *ptr1 = sim1.GetThisPointer();
cout << ptr1 << endl; //주소값출력
ptr1->ShowSimpleData();
return 0;
}
this 포인터 활용