C++6일차
this 포인터
this 포인터는 객체 자신에 대한 포인터로서 클래스의 멤버 함수 내에서만 사용이 가능한 포인터입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> using namespace std; class Myclass { public: void PrintThis() { cout << "나의 주소는 " << this << endl; } }; int main() { Myclass a, b; cout << "A의 주소는 " << &a << endl; cout << "B의 주소는 " << &b << endl; a.PrintThis(); b.PrintThis(); return 0; } | cs |
위의 예제는 this 포인터를 이용한 예제입니다.
이걸 실행하게 되면 Myclass라는 class에 a,b라는 객체의 주소 값이 나타나게 됩니다. 따라서 우리는 this는 객체 자신을 가르키는 포인터라는 것을 알 수 있습니다.
또한 객체마다 this 포인터를 가지고 있으며 class의 함수에서만 사용할 수 있다는 것을 알수 있습니다.
위 예제의 작동
main의 Myclass의 객체 a와 가 만들어짐 -> a.PrintThis();를 실행 시킬때 a라는 객체의 값이 this매개변수에 전달 -> 따라서 a의 주소가 출력된다.(메모리에 대해 공부하시면 더욱 잘 아실수 있어요!!)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <iostream> using namespace std; class Myclass { int k; public: void Set(int x) { this->k = x; } void print() { cout << k << endl; } }; int main() { Myclass a; a.Set(5); a.print(); return 0; } | cs |
위의 예제를 보시면 this를 사용하여 class안의 변수인 k의 값을 바꾸는 예제인것을 알 수 있습니다.
이 예제를 보시면 this의 사용법을 잘 알수 있겠죠?
그럼 이만