[C++][중급] 멤버 데이터 포인터, invoke


[C++][중급] 멤버 데이터 포인터, invoke

오늘은 멤버 데이터를 가리키는 포인터에 대해 알아볼까 합니다. #include <iostream> struct Point { int x; int y; }; int main() { int num = 0; int* p1 = &num; int Point::*p2 = &Point::y; *p1 = 10; // ok // *p2 = 10; // error Point pt; pt.*p2 = 10; // pt.y = 10; // *((char*)&pt + p2) = 10; } 멤버 데이터를 가리키는 포인터를 일반 데이터의 포인터와 비교해보면 별거 아닌데 어려워 보이죠? 일반 데이터 포인터 int* p1 = &num; 멤버 데이터 포인더 int Point::*p2 = &Point::y; 포맷은 똑같은데 이 클래스의 멤버야. 정보만 넣어 주면 됩니다. 여기에서 잠깐, 분명히 Point 타입 객체를 선언하지 않았는데, p2는 무엇을 담고 있을까요? p2에는 offset 값이 들어 있습니다. 공식 표준...


#멤버데이터포인터

원문링크 : [C++][중급] 멤버 데이터 포인터, invoke