[C++][중급] 멤버 함수의 호출 원리(this call)


[C++][중급] 멤버 함수의 호출 원리(this call)

오늘은 멤버 함수와 static 멤버 함수의 호출 원리에 대해 살펴 보겠습니다. 멤버 함수의 호출 원리 (this call) class Point { int x{0}; int y{0}; public: void set(int a, int b) { x = a; y = b; } }; int main() { Point pt1; Point pt2; pt1.set(10, 20); pt2.set(10, 20); } 멤버 데이터는 객체당 한 개씩 생성됩니다. Point 객체는 아래와 같이 두 개를 생성해서 멤버 데이터는 메모리에 두개씩 있게 될텐데, 과연 멤버 함수(set())는 메모리에 두 개가 놓일지, 한 개가 놓일지 생각해 봅시다. 정답은 메모리에 1개만 있겠죠? 그럼 x가 어떤 객체의 멤버인지 어떻게 알 수 있을까요? 만약 pt1.set(10, 20); pt2.set(10,20); 이 Point의 set() 함수로 10, 20만 던져준다면 set()은 어느 놈 것인지 알 수 없겠죠? 이게 ...


#static멤버함수 #thiscall #멤버함수

원문링크 : [C++][중급] 멤버 함수의 호출 원리(this call)