this 포인터
2020. 9. 10. 03:09ㆍ컴퓨터 수업/C++
@느낌
멤버함수 내부에만 작성하게 될것이다. no 프렌드함수
@this 포인터
멤버 함수 내에서 클래스의 데이터 멤버들을 참조하는 경우에 직접 참조가 가능하기 때문에 객체명을 지정하거나 도트 연산자를 사용할 필요가 없었다.
하지만 연산자 오버로딩에서 중요하니까 알아야한다.
다음 예시를 보자.
class vector
{
private:
int vector[2]
public:
int inner(vector b)
{
return vector[0]*b.vector[0] +vector[1]*b.vector[1];
}
}
int main()
{
vector a,b;
cout << a.inner(b) << endl;
}
vector의 내적을 행할 때, 자연스럽게 a의 vector 데이터멤버를 쓸때 아무 것도 붙이지 않았다
여기에는 원래 this->vector[0] 가 붙어야한다.
따라서 this 포인터의 정의는,
다음과 같이 정리할 수 있다.
@this포인터의 정의
멤버 함수가 호출될 때 그 멤버 함수를 호출한 객체의 시작 주소를 가리키는 포인터이다.
this 그 자체로 의미가 있는것이지. this->가 의미 있는것이 아니다.
'컴퓨터 수업 > C++' 카테고리의 다른 글
friend 함수 (0) | 2020.09.10 |
---|---|
오버로딩과 다형성 (오버로딩은 그냥 다른 datatype 지원 그 자체다.) (0) | 2020.09.10 |
선언과 정의 (0) | 2020.09.10 |
C++ include style, 설명하면서 자연스럽게 linker와 preprocessor (0) | 2020.09.09 |
나는 포인터가 싫어요. (포인터변수와 참조자를 함수에 인자로 주고받는 것에 대해.) (0) | 2020.09.03 |