호출 없이 함수 계산하기: 미스터리 풀기
이것을 상상해보세요: 괄호를 사용하여 함수를 호출하는 대신 코딩을 하고 있다고 가정해 보세요. 간단히 이름을 인쇄하면 됩니다. 놀랍게도 결과는 항상 1입니다. 이 색다른 접근 방식은 1과 예상되는 함수 포인터의 부재에 대해 당황하게 만듭니다.
코드의 복잡성을 자세히 살펴보겠습니다.
#include
using namespace std;
void pr()
{
cout 의도와는 달리 실제로 cout
이해를 돕기 위해 인쇄하기 전에 cout
C 11은 우아한 솔루션을 제공하는 반면:
template
std::ostream & operator이 오버로드를 사용하면 임의 개수의 함수 포인터를 인쇄하여 함수 포인터의 주소 및 인수 수와 같은 정보를 표시할 수 있습니다.
자, 여기까지입니다. 수수께끼의 1은 다음과 같습니다. 단순한 우연이 아니라 암시적 유형 변환의 결과입니다. 예상치 못한 결과를 방지하고 보다 강력한 코드를 작성하려면 이 동작을 이해하는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3