IT TIP

멤버 함수 포인터를 통해 호출하는 방법은 무엇입니까?

itqueen 2021. 1. 7. 20:15
반응형

멤버 함수 포인터를 통해 호출하는 방법은 무엇입니까?


멤버 함수 포인터로 테스트를 시도하고 있습니다. 이 코드에 어떤 문제가 있습니까? bigCat.*pcat();문은 컴파일되지 않습니다.

class cat {
public:
   void walk() {
      printf("cat is walking \n");
   }
};

int main(){
   cat bigCat;
   void (cat::*pcat)();
   pcat = &cat::walk;
   bigCat.*pcat();
}

더 많은 괄호가 필요합니다.

(bigCat.*pcat)();
^            ^

함수 호출 ( ())은 멤버에 대한 포인터 바인딩 연산자 ( .*) 보다 우선 순위가 높습니다 . 단항 연산자는 이항 연산자보다 우선 순위가 높습니다.

참조 URL : https://stackoverflow.com/questions/12189057/how-to-call-through-a-member-function-pointer

반응형