티스토리 뷰


함수포인터에 대한 기초적인 사용 방법은 https://www.joinc.co.kr/w/Site/C/Documents/FunctionPointer 에서 참고바랍니다.



함수포인터의 사용의의라 하면 유연하게 코딩을 할 수 있다는데 있겠습니다. 또 코드의 양을 줄일수도 있습니다.


거두절미 하고 코드로 먼저 확인하겠습니다.








헤더파일에 typedef로 정의된 함수포인터는 두가지가 있습니다.


ElementComprator


ReturnValueComprator



typedef로 정의해서 간략하게 함수포인터를 이용할 수 있습니다.


그렇지 않으면 일일이 함수의 헤더를 그대로 적어야겠죠.


ElementComprator는 사용자정의 comp함수입니다.


클래스의 객체를 만들어 낼 때 매개변수로 넘길 수 있는데


이 함수포인터는 ReturnValueComprator(std::max혹은 min)의 comp매개변수로 다시 넘겨집니다.


또 ReturnValueComprator는 template과도 연계해서 정의해서 연계되어있습니다.


따라서 클래스안에 정의하였습니다.



헤더파일을 정의한 hpp파일의 9번 라인을 보면 함수포인터가 어떻게 적용되는지 확인할 수 있습니다.


사용자가 호출한 생성자에 매개변수에 따라 std::min<int>일지 max일지 정의되어 있고


init함수의 반환값에 그대로 적용되고 있습니다.


init함수 하나만이라면야 굳이 함수포인터를 이용하지 않고 if isMinimum==true: min() else max()로 나눌수도 있지만 


함수가 여러개라면 코드의 양이 길어집니다. 따라서 맨 처음 언급한대로 함수포인터를 적용함으로


코드가 좀더 간결해지고 유연해졌습니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함