this 포인터

😎·2022년 11월 24일
0

CPP

목록 보기
4/46

this 포인터

멤버 함수가 호출된 객체의 주소를 가리키는 숨겨진 포인터다.


멤버 함수 공유

하나의 클래스에서 생성된 인스턴스들의 멤버 함수는 모든 인스턴스에 공유된다.

인스턴스에서 멤버 함수를 실행할 때, 본인(인스턴스 자신)을 가리키는 상황이 생길 때가 있다.

이런 상황에서 본인(인스턴스 자신)에게 접근하기 쉽게 this 포인터가 생겼다. this 포인터로 본인(인스턴스 자신)을 가리킬 수 있다.

설명이 매우 부족하다... 그래서 참고했던 사이트만 공유하겠다.


참고 자료


코드

  • main.c
#include "Sample.class.hpp"

int main() {
    Sample instance;

    return 0;
}
  • Sample.class.cpp -> this 사용
#include "Sample.class.hpp"

Sample::Sample(void) {
    std::cout << "Constructor called" << std::endl;

    this->foo = 42;
    std::cout << "this->foo: " << this->foo << std::endl;

    this->bar();
    
    return;
}

Sample::~Sample(void) {
    std::cout << "Destructor called" << std::endl;
    return ;
}

void    Sample::bar(void) {
    std::cout << "Member function bar called" << std::endl;
    return;
}
  • Sample.class.hpp
#ifndef SAMPLE_CLASS_H
# define SAMPLE_CLASS_H

# include <iostream>

class Sample {

public:
    int foo;

    Sample(void);
    ~Sample(void);

    void bar(void);
};

#endif

profile
jaekim

0개의 댓글