C++

this 포인터 사용법

Vetenir 2025. 1. 7. 20:58

1. 멤버 변수와 지역 변수를 구별

멤버 변수와 매개 변수의 이름은 다르게 만드는 것이 좋겠지만

이미 작성한 코드와 파일이 많을 때는 그러한 것을 항상 지키는 것은 쉽지 않을 것이기 때문에

this 포인터를 사용하여 구분하여 충돌을 피할 수 있습니다.

void testclass::member_func(int safe) {
	this->variable = variable;
}

this -> variable : 멤버 변수

variable : 매개변수

 

2. 멤버 함수 체이닝 구현

함수 체이닝 : 여러 함수를 연이어 호출하는 방식

#include <iostream>

class Testclass {
private:
    int num;
public:
    Testclass(int n) : num(n) {}

    Testclass& add(int n); // add 함수 선언
    void print() const { std::cout << "num: " << num << std::endl; }
};

Testclass& Testclass::add(int n)
{
    num += n; // num 값을 증가시킴
    return *this; // 자기 자신 반환
}

int main() {
    Testclass obj(10);
    obj.add(5).add(3); // 함수 체이닝
    obj.print(); // num: 18 출력
    return 0;
}

 

this로 객체 자신의 포인터를 반환하는 것이 가능합니다.