This 포인터
클래스의 멤버 함수 내에서 클래스의 데이터 멤버들을 참조하는 경우에 직접 참조가 가능하기 때문에 객체명을 지정해서 도트 연산자를 사용할 필요가 없다. 멤버 함수는 특정 객체에 대해 호출되기 때문에 컴파일러는 어떤 객체의 데이터 멤버를 참조해야 하는지를 판단할 수 있기 때문이다.
this 포인터는 클래스의 멤버 함수에만 전달되기 때문에 프렌드 함수에는 this 포인터가 전달되지 않는다. this 포인터는 연산자를 오버로드 하는 경우에 매우 중요하게 사용된다.
예제
#include <iostream>
using namespace std;
class testdata {
private:
int i, j;
public:
void input(int a, int b) {
this->i = a; // i = a; 와 동일
this->j = b; // j = b; 와 동일
}
void output() {
cout << "i=" << i << ",j=" << j << endl;
}
};
int main()
{
testdata x, y;
x.input(50, 100);
y.input(10, 30);
x.output();
y.output();
return 0;
}
실행 결과
i=50,j=100
i=10,j=30
※ this->i = a; 는 i=a; 와 동일하고 this->j=b;도 마찬가지 이다.
참고
1. 장인성 외 5인, (초보자도 쉽게 따라 할 수 있는) C++프로그래밍, 광문각, 2017.02.13
'C++ 기초 1' 카테고리의 다른 글
| [C++] 2-9 함수의 객체 전달 (value 및 포인터) (1) | 2023.12.05 |
|---|---|
| [C++] 2-8 클래스 객체의 대입 (2) | 2023.12.04 |
| [C++] 2-5 클래스 객체 포인터 설명 및 예제 (0) | 2023.11.29 |
| [C++] 2-4 클래스 배열 초기화 설명 및 예제 (2) | 2023.11.28 |
| [C++] 2-3 클래스 변수 초기화 / 멤버 변수 초기화 (55) | 2023.11.27 |