해결된 질문
작성
·
215
0
답변 2
0
함수포인터#1 강의에서 함수 포인터의 사용 예시로,
"함수에서 매게변수로 또 다른 함수를 받고싶을때 함수 포인터를 쓴다"고 강사님이 설명을 해주셨고
그 다음 함수 객체 관련 강의에서 하시는 설명을 들어보니, "함수포인터는 진행상황을 저장하지 못한다는 단점이 있고 그것을 보완한것이 함수 객체이다" 라고 설명해주셨는데요,
그래서 제가 이해하기로는 '함수객체는 함수포인터의 단점을 보완한거구나' 라고 이해하고,
"그렇다면 함수포인터를 사용해야할 이유가 없지 않을까?" 라는 의문이 들어서 질문을 드렸습니다.
만약 둘의 사용 용도가 완전히 다르고, 제가 잘못 이해했다면, 잘못 이해한 부분을 지적해주시면 감사하겠습니다
0
그렇다면 함수포인터는 함수 객체로 대체해서 쓰면 가능하지 않나요?
이 부분이 잘 이해가 가지 않았습니다.
함수 객체를 이용하면 함수 포인터 외에도 인자들을 같이 멤버 변수로 저장해서 넘길 수 있습니다.
서버 시간에 배울 Job이 그런 개념이기도 하고,
사실 lambda 또한 일종의 함수 객체를 만드는 작업입니다.
함수객체가 함수+데이터 저장이니 어떻게 보면 상위호환이라
함수 포인터로 할 수 있는건 물론 함수 객체로도 다 할 수 있습니다.
하지만 전달할 값이 없다면 굳이 객체까지 않고
주소값에 불과한 함수 포인터를 사용하면 되겠죠.