멤버 함수 포인터 호출: 적절한 구문 분석
멤버 함수 포인터로 작업할 때는 올바른 구문을 준수하여 다음을 보장하는 것이 중요합니다. 성공적인 실행. 멤버 함수 포인터를 통해 멤버 함수를 호출하려고 할 때 발생하는 일반적인 문제를 살펴보고 필요한 솔루션을 제공하겠습니다.
잘못된 코드 조각:
class cat { public: void walk() { printf("cat is walking \n"); } }; int main(){ cat bigCat; void (cat::*pcat)(); pcat = &cat::walk; bigCat.*pcat(); }
컴파일 오류: bigCat .*pcat(); 문이 오류를 생성합니다.
해결책:
이 문제를 해결하는 열쇠는 bigCat.*pcat() 표현식이 적절한 우선 순위를 갖도록 하는 것입니다. 연산자 우선순위는 단항 연산자가 이항 연산자보다 우선함을 나타냅니다. 따라서 포인터-멤버 바인딩 작업보다 함수 호출()의 우선 순위를 지정하려면 괄호가 필요합니다.*.
(bigCat.*pcat)(); ^ ^
함수 호출을 괄호로 묶으면 먼저 실행되고 멤버 함수 포인터가 뒤따릅니다. 바인딩.
기억하세요:
위 내용은 C에서 멤버 함수 포인터를 올바르게 호출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!