본문 바로가기
728x90

함수 포인터2

c++ 함수 포인터 C와 C++의 함수포인터 C에서의 함수포인터 타입 재정의 함수 역시 주소를 가지고 있기 때문 포인터와 마찬가지로 함수를 가리키는 포인터를 만들 수 있다. //짝수인지 반환 함수 bool isEven(const int& number) { return (number % 2) ? false : true; } //함수포인터 타입 재정의 typedef bool(*check_func)(const int&); //배열의 짝수들 출력 void printEvenNumber(const array& my_arr, check_func = isEven) { for (const auto &e : my_arr) { if (isEven(e)) cout 2020. 12. 16.
함수 포인터(Function Pointer) 와 보이드 포인터(Void*) □ 함수 포인터 - 실행 코드인 함수의 주소를 다루는 포인터 - 함수의 이름은 함수가 있는 메모리의 시작주소가 된다. 함수명이 함수의 메모리의 주소이므로, 함수 포인터에 저장하면 함수를 다양한 방식으로 호출 할 수 있다. 함수 형태는 매개변수의 개수와 자료형, 그리고 반환값의 자료형으로 정의 한다. □ 함수 포인터 배열 - 함수 포인터를 배열에 저장하여 사용할 수 있다. □ 예제로 함수 포인터 살펴보기 함수 포인터를 선언할때 매개변수의 타입 또는 갯수를 설정해주지 않은 경우에는 가리키는 함수의 매개변수 형태와 상관없이 (반환값은 일치해야함) 정상적으로 실행되는 모습을 볼 수 있다. 하지만, 함수 포인터의 매개변수 형태(갯수)를 지정해놓은 경우, 갯수가 맞지 않아 컴파일시 다음과 같은 오류를 보게된다. 에.. 2016. 11. 2.
728x90