C에서 멤버 함수에 대한 포인터 호출
C에서 멤버 함수에 대한 포인터는 객체에 대한 메서드를 동적으로 호출하는 편리한 방법을 제공합니다. 그러나 해당 구문은 어려울 수 있습니다.
멤버 함수에 대한 포인터 호출 구문
멤버 함수에 대한 포인터를 호출하려면 다음 구문이 사용됩니다.
(object->*pointer_variable)(params)
여기서:
구문 예
다음 코드를 고려해보세요 snippet:
typedef void (Box::*HitTest) (int x, int y, int w, int h); for (std::list<HitTest>::const_iterator i = hitTestList.begin(); i != hitTestList.end(); ++i) { HitTest h = *i; (box->*h)(xPos, yPos, width, height); }
이 예에서는 HitTest 멤버 함수에 대한 포인터 목록이 반복됩니다. 각 포인터는 목록에서 가져오고 다음과 같이 상자 포인터를 제공하여 호출됩니다.
포인터 목록에 구성원 함수 추가
목록에 구성원 함수를 추가하려면 포인터의 경우 다음 구문을 사용할 수 있습니다.
list.push_back(&box->HitTest);
이 코드는 포인터를 HitTest 멤버 함수에 푸시합니다. 상자 개체를 목록에 추가합니다.
위 내용은 C에서 멤버 함수에 대한 포인터를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!