본문 바로가기

C++

[C++] this 포인터

this 포인터란?

 

this 포인터는 작성 중인 클래스의 실제 인스턴스에 대한 주소를 가리키는 포인터이다. 즉, 객체가 자기 자신을 가리키는 포인터이다.

 

#include <iostream>
using namespace std;

class myClass
{
public:
	myClass(int x, int y) {
		this->x = x;
		this->y = y;
	}
	
	void Print() {
		cout << x << endl;
		cout << y << endl;
	}

private:
	int x;	//this->x
	int y;	//this->y

};

int main()
{
	int x = 10;
	myClass a(10, 20);
	myClass b(30, 40);
	a.Print();
	b.Print();

	return 0;
}

 

결과값:

10
20
30
40

 

this 포인터는 객체 자신을 가리키므로 예제에서 this 포인터가 빠진다면 매개변수x, y에 매개변수 x, y를 넣는 무의미한 코드가 될 것이다. 정작 사용하고 싶은 멤버변수 x, y에는 쓰레기값이 그대로 있을 것이다.

a.Print()는 a.Print(&a)를 b.Print()는 b.Print(&b)를 의미한다고 봐도 무방하다.

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

[C++] 생성자와 소멸자  (0) 2019.12.16
[C++] 참조자(Reference)  (0) 2019.12.16
[C++] 클래스와 메소드  (0) 2019.12.15
[C++] 네임스페이스(Namespace)  (0) 2019.12.14
[C++] 오버로딩(Overloading)과 템플릿(Template)  (0) 2019.12.13