이번에는 멤버 메서드에서 개체 자신을 의미하는 this 키워드를 알아보기로 해요.
개체의 메서드에서는 특별한 키워드 this를 사용할 수 있어요. this는 컴파일러에 의해 자동으로 캡슐화하는 정적 멤버입니다. this 키워드는 개체 자신을 나타내며 클래스 형식의 포인터입니다.
this 키워드를 통해 접근할 수 있는 것은 클래스에 캡슐화한 멤버입니다. 따라서 멤버 필드와 지역 변수와 같은 이름이어도 this 키워드로 접근하면 멤버 필드를 접근합니다. 참고로 전역 변수와 지역 변수, 멤버 필드의 이름이 같을 때 전역 변수는 스코프 연산자(::)와 함께 사용할 수 있고 멤버 필드는 this 키워드와 함께 사용할 수 있습니다. 지역 변수는 변수명만 가지고 접근할 수 있죠.
물론 이름이 다르다면 스코프 연산자(::)나 this를 굳이 사용할 필요는 없어요.
//같은 이름의 전역 변수, 지역 변수, 멤버 필드 접근하기
#include <iostream>
using namespace std;
int num=1;
class Demo
{
int num;
public:
Demo(int num)
{
this->num = num;
}
void View(int num)const
{
cout<<"전역 변수 num:"<<::num<<endl;//스코프 연산자(::)와 변수명
cout<<"멤버 필드 num:"<<this->num<<endl; //this->멤버 필드명
cout<<"지역 변수 num:"<<num<<endl;
}
};
int main()
{
Demo *demo = new Demo(2);
demo->View(3);
delete demo;
return 0;
}
▷실행 결과
전역 변수 num:1
멤버 필드 num:2
지역 변수 num:3
this는 클래스 내부에서만 접근할 수 있으므로 주의하세요.
'언어 자료구조 알고리즘 > 디딤돌 C++' 카테고리의 다른 글
24. 캡슐화 최종 실습 - 멤버 메서드 (0) | 2016.01.27 |
---|---|
23. 캡슐화 최종 실습 - 멤버 필드 (0) | 2016.01.27 |
22. 캡슐화 최종 실습 - 시나리오 (0) | 2016.01.27 |
21. 캡슐화 실습2 - 학생 (4) | 2016.01.27 |
20. 캡슐화 실습1 - 복소수 (2) | 2016.01.27 |
18. 상수화 멤버 (0) | 2016.01.27 |
17. 정적(static) 멤버 (0) | 2016.01.27 |
16. 생성자, 소멸자 (0) | 2016.01.27 |
15. 접근 지정자 (0) | 2016.01.27 |
14. 캡슐화 개요 (0) | 2016.01.27 |