I가 함수 내에서 변경을 함수 포인터의 대상 기능을 정의하는 프로그램에 의해 호출되는 한 (C + +를) 포인터과 같이 말했다 :함수 내에서 함수 포인터의 대상을 변경하는 데 문제가 있습니까?
이void increment(int&);
void superincrement(int&);
void (*fooncrement)(int&);
int main() {
int j = 0;
fooncrement = increment;
while (true == true) {
fooncrement(j);
}
}
void increment(int& i) {
static int counter = 0;
i++;
if (counter > 7)
fooncrement = superincrement;
counter++;
}
void superincrement(int& i) {
i += 23;
}
MSVC의 디버거를 통해 빠른 실행이 보여주는 프로그램보다 그 또는 이하 예상대로 작동합니다. 그러나, 더 복잡한 환경에서 이와 같은 것을 시도한 경우에 명백해질 수있는 문제가 있습니까?
조금 더 자세히 설명해 주시겠습니까? –