글
this 포인터의 다양한 사용 용도 가 있겠지만,
클래스 내부의 멤버 변수에 접근하기 위한 필요성이 있을 때 this 포인터를 먼저 떠올리길 바란다.
일반적으로 아래와 같은 코드에서
멤버변수와 지역변수(매개변수도 일종의 지역변수이므로) aaa 가 존재하고
멤버변수 aaa에 생성자의 매개변수 aaa를 대입했으면 하고 프로그래밍 하는 경우에
aaa = aaa;
라고 쓰면 절대 멤버변수에 값을 쓸 수가 없다. (지역변수가 멤버변수보다 우선하므로)
그래서 this 포인터를 사용하여 아래와 같이
this->aaa = aaa;
로 사용하면 원하는 결과가 가능하다.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
class data {
int aaa;
int bbb;
public:
data(int aaa, int bbb) {
//aaa=aaa;
this->aaa=aaa;
//bbb=bbb;
this->bbb=bbb;
}
void printAll() {
cout<<aaa<<" "<<bbb<<endl;
}
};
int main(void) {
data d(100, 200);
d.printAll();
return 0;
}
당연히 main()에서 d.printAll() 에 의한 출력은 “100 200” 이 된다.
'C/C++' 카테고리의 다른 글
[열혈강의 C++] 2장 C 기반의 C++ 2 (0) | 2008.08.27 |
---|---|
[열혈강의 C++] 1장 C 기반의 C++ 1 (0) | 2008.08.20 |
[스크랩] ioctl() (0) | 2008.08.11 |
[스크랩] Mutex를 이용한 쓰레드 동기화 - 조인시 위키 (0) | 2008.08.01 |
[스크랩] 쓰레드는 무엇이며, 왜 이용하는가 - 조인시 위키 (0) | 2008.08.01 |
RECENT COMMENT