-
https://www.youtube.com/watch?v=ou7eSymxo5U&list=PLlJhQXcLQBJqywc5dweQ75GBRubzPxhAk&index=60
1. this 포인터
#include <iostream> using namespace std; class MyClass { public: void PirntThis() { cout << "나의 주소는 " << this << endl; } }; int main() { MyClass a, b; cout << "a의 주소는 " << &a << endl; cout << "b의 주소는 " << &b << endl; a.PirntThis(); b.PirntThis(); }
출력결과 결과로 보아 this는 자신이 속한 개체의 주소를 출력하는 역할을 한다.
그리고 우리 눈에 보이지는 않지만 사실
class MyClass { public: void PirntThis(MyClass *ptr) { cout << "나의 주소는 " << ptr << endl; } };
★ MyClass *ptr 과 같은 형태의 매개변수로 존재하고있다.
그리고 이 실제에서는 이러한 매개변수를 감추고 this라는 형태로 사용되고 있는 것이다.
매우 유용한 포인터로 this라는 형태로 받고 있다
그리고 클래스 내부의 함수는 사실 클래스 객체 내부에 포함되어 있는 것이 아니고 다른 공간에 포함되어 있지만 this라는 포인터를 갖다가 매개변수로 받음으로써 내부의 함수가 어떤 클래스의 소속인지 알 수 있다.
'C++' 카테고리의 다른 글
생성자의 다양한 사용 방법 (0) 2021.12.23 객체의 생성과 소멸 (0) 2021.12.21 클래스 = 구조체??, 접근제어지시자 (0) 2021.12.21 네임스페이스 (0) 2021.12.21 7부(C++ 스타일 프로그래밍) 종합문제 (0) 2021.12.21