본문 바로가기

C++

C++6일차

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의 주소는 " << &<< endl;
    cout << "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->= x;
    }
    void print() {
        cout << k << endl;
    }
};
 
int main() {
    Myclass a;
    a.Set(5);
    a.print();
    return 0;
}
cs


위의 예제를 보시면 this를 사용하여 class안의 변수인 k의 값을 바꾸는 예제인것을 알 수 있습니다.

이 예제를 보시면 this의 사용법을 잘 알수 있겠죠?


그럼 이만

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

C++ 8일차  (0) 2018.06.02
C++7일차  (0) 2018.06.01
C++5일차  (0) 2018.05.30
C++4일차  (0) 2018.05.30
C++3일차  (0) 2018.05.30