함수 포인터 check_fnc에 관해 질문이 있습니다.
#include <iostream>#include <array>using namespace std;bool isEven(const int& number){ if (number % 2 == 0) return true; else return false;}bool isOdd(const int& number){ if (number % 2 != 0) return true; else return false;}void printNumbers(const array<int, 10>& my_array, bool (*check_fnc)(const int&)=isEven){ for (auto element : my_array) { if (check_fnc(element) == true) cout << element << " "; } cout << endl;}int main(){ std::array<int, 10> my_array = { 0,1,2,3,4,5,6,7,8,9 }; printNumbers(my_array); printNumbers(my_array, isOdd); return 0;}에서 if (check_fnc(element) == true)부분인데요, check_fnc가 함수 포인터고 이것이 함수의 주소를 저장하니까 isEven으로 기본값을 설정하면, 포인터가 isEven으로 찾아가서 함수를 호출하는 것이 맞나요?그리고 printNumbers(my_array, isOdd)부분에서는 check_fnc가 isOdd의 주소를 저장했으니까if (check_fnc(element) == true)의 check_fnc가 isOdd를 호출하는 것도 맞나요??