this
:this 포인터는 모든 멤버 함수에 추가되는 숨겨진 매개 변수. 호출된 객체의 주소를 가리키는 상수 포인터. (따라서 포인터 자체가 다른 것을 가리키도록 할 수 없음)
예시1:
class TEST{
public:
void Print_student(){
cout << this << endl;
}
}
int main(){
TEST st1;
st1.Print_student();
cout << &st1 << endl;
return 0;
}
하면 동일한 값이 두 줄 출력됨.
즉, this는 자기 자신을 가리키는 것!
static 멤버 함수에서는 사용 불가.
(class, structure 같은 비정적 멤버 함수에서만 사용 가능!)
클래스의 멤버 변수와 매개 변수가 동일할 때 사용할 수 있다. (굳이 똑같이 해야할까..?)
예시2:
class STUDENT{
private:
int age;
public:
STUDENT(int age){
this -> age = age;
}
void Print_student(){
cout << age << "살 입니다." << endl;
}
}
해석:
this -> age 는 멤버 변수를 의미
그냥 age 는 매개변수를 의미