C++/Class
2021. 3. 15. 23:38
this
- 인스턴스 객체의 주소를 가리킨다.
예제
#include <iostream>
class Simple
{
int id_;
public:
Simple(const int& id_in)
{
setID(id_in);
std::cout << this << std::endl;
}
void setID(int id) { id_ = id; }
int getID() { return id_; }
};
int main()
{
Simple s1{ 1 }, s2{ 2 };
s1.setID(2);
s2.setID(4);
std::cout << &s1 << '\n' << &s2 << std::endl;
}
/* stdout
00EFFD14
00EFFD08
00EFFD14
00EFFD08
*/
- 인스턴스를 생성할 때 멤버 함수들을 따로따로 만드는게 아니라, 한번 정의한 것을 계속 사용하는게 효율적이다.
- 이를 위해서는 인스턴스의 주소를 멤버 함수가 사용될 때 전달해야 한다.
- 위 예제의
main
함수에서s1.setID(2)
명령줄은 다음과 같이 작동하는 것이다.- 첫 인자로 인스턴스의 주소를 넣는 방식이다.
Simple::setID(&s1, 2);
->
: 포인터의 member selection operator- 체이닝(Chaining)
'C++ > Class' 카테고리의 다른 글
C++ static (Class) (0) | 2021.03.15 |
---|---|
C++ 체이닝(Chaining) (0) | 2021.03.15 |
C++ 소멸자 (Destructor) (0) | 2021.03.15 |
C++ 변환 생성자(Converting Constructor) (0) | 2021.03.15 |
C++ 복사 생성자(Copy Constructor) (0) | 2021.03.12 |