먼저, this 질문을 분명히 해두면 분명히 의심의 여지가 없다. 문맥을 깨끗하게 설정하려면. C/C++에서 함수 포인터와 관련하여 특별히이 질문을하고 있습니다.후기 바인딩의 이점은 무엇입니까? C++에서 함수 포인터의 문맥에서 한 가지 예를 들자.
초기 바인딩과 후기 바인딩 간의 차이점과 작동 방식을 알고 있습니다. 많은 교과서에서
,이 언급되었습니다 : 늦은 바인딩의
장점은보다 융통성이 있다는 것입니다 내가 이해하고 싶은 것은 C/C++에서 함수 포인터를 사용하여 하나의 예와 함께 다음과 같다 초기에 바인딩, 왜냐하면 어떤 함수를 호출 할 지 결정할 때 실행 시간까지 을 만들 필요가 없기 때문입니다.
또한, 언급 : 후기 바인딩으로
이 프로그램은 포인터에서 개최 된 주소를 읽은 후 해당 주소로 이동한다. 여기에는 약간의 추가 단계 인 이 포함됩니다. 여기
#include <iostream>
using namespace std;
int Add(int nX, int nY)
{
return nX + nY;
}
int Subtract(int nX, int nY)
{
return nX - nY;
}
int Multiply(int nX, int nY)
{
return nX * nY;
}
int main()
{
int nX;
cout << "Enter a number: ";
cin >> nX;
int nY;
cout << "Enter another number: ";
cin >> nY;
int nOperation;
do
{
cout << "Enter an operation (0=add, 1=subtract, 2=multiply): ";
cin >> nOperation;
} while (nOperation < 0 || nOperation > 2);
// Create a function pointer named pFcn (yes, the syntax is ugly)
int (*pFcn)(int, int);
// Set pFcn to point to the function the user chose
switch (nOperation)
{
case 0: pFcn = Add; break;
case 1: pFcn = Subtract; break;
case 2: pFcn = Multiply; break;
}
// Call the function that pFcn is pointing to with nX and nY as parameters
cout << "The answer is: " << pFcn(nX, nY) << endl;
return 0;
}
늦게 결합 아래 바람직되어야 예와 같이 초기 바인딩 사용에는 장점이 없다.
int nResult = 0;
switch (nOperation)
{
case 0: nResult = Add(nX, nY); break;
case 1: nResult = Subtract(nX, nY); break;
case 2: nResult = Multiply(nX, nY); break;
}
cout << "The answer is: " << nResult << endl;
사람은 후기 바인딩이 장점이다 왜 누군가가 초기 바인딩을 위에 그것을 선택해야 아래처럼 쉬운 예제를 통해 설명 할 수 있을까요?
하나의 예는 런타임에 플러그인을 추가하는 것입니다.Word 스프레드 시트를 Word 문서에 포함하고 Word에서 편집 할 수있는 방법은 무엇입니까? 사실, 당신은 문서 형식을 고안 할 수 있고 그것을 편집 할 응용 프로그램을 만들 수 있으며 Word는 프로그램에 늦게 바인딩 할 수 있으며 사람들은 그것을 사용할 수 있습니다. 후기 바인딩의 예입니다. 이점을 보게된다면, 그것은 당신에게 달린 것입니다. –
C/C++ **에서 특별히 w.r.t ** 함수 포인터를 묻습니다. 누군가 보류 상태를 해제하고 대답을 시도해 주시겠습니까? –
후기 바인딩이'C/C++의 함수 포인터 '와 관련이 있다고 생각하게 만드는 이유는 무엇입니까? 그렇지 않습니다. 예를 들어 [Visual C++를 사용하여 자동화 된 DocumentProperties에 액세스하는 방법] (https://support.microsoft.com/en-us/kb/238393) - 후기 바인딩을 사용하여 MS Word를 자동화하는 'C++'코드입니다. 사용되거나 필요하지 않은'function pointer '는 없다. – dxiv