C ++의 대표자가 의미하는 것은 무엇입니까?
문제
C ++의 대의원이 C/C ++의 정렬 함수는 마지막 매개 변수가 대의원의 형태이기 때문에 C/C ++의 정렬 함수는 무엇입니까?
해결책
"Delegate"는 실제로 C ++ 용어의 일부가 아닙니다. C#에서는 객체의 주소를 저장하고 멤버 기능을 호출 할 수있는 영광스러운 기능 포인터와 같은 것입니다. C ++에서 작은 라이브러리 기능으로 이와 같은 것을 확실히 쓸 수 있습니다. 또는 더 일반적인 : 결합 boost::bind<>
~와 함께 boost::function<>
.
C ++에서는 "기능 객체"라는 용어를 사용합니다. 함수 객체는 함수 콜 오퍼레이터 ()를 통해 "호출 가능"인 (함수 포인터 포함)입니다.
STD :: SORT는 인수를 수정하지 않고 부울 값을 반환하는 특수 함수 객체 인 "술어"를 취합니다.
다른 팁
C ++의 콜백 함수는 (느슨하게)의 형태라고합니다. delegates
( 그렇지만 delegate
이 용어는 이것에 사용되지 않습니다). 콜백 함수는 포인터를 사용하여 함수를 사용하여 다른 함수로 매개 변수로 전달합니다. 그러나 C#의 대표단은 C ++의 콜백 함수에 비해 더욱 발전됩니다.
작업을 위임한다는 것은 작업 부하를 다른 사람과 공유하는 것을 의미합니다. 실생활에서, 당신이 당신의 과제를 위임한다면, 즉, 당신이 관리자라면, 당신은 당신의 작업을 공유하는 것이 당신의 작업을 공유 할 것입니다.
이 개념은 C ++와 대의원의 기능을 갖는 다른 언어에서 동일합니다. C에서는 이것을 대의원으로 볼 수 있습니다.
int calculate(int (*func)(int c), int a, int b)
당신은 포인터를 보낼 것으로 예상되기 때문에, 당신을 위해 어떤 작품을 계산할 다른 기능으로. 나는 최근에 a 블로그 게시물 Python과 C의 기능 포인터에서 확인하면 도움이 될 수 있습니다. 이것은 C 또는 C ++에서 작업을 위임하는 "전통적인"방법이 아닐 수도 있지만, 다시 한 번 Termonoligy는 내가 조금 옳다고 말합니다.