cout による関数ポインターの出力
C では、 cout は関数ポインターの出力を直接サポートしていません。ただし、特定の演算子オーバーロードを使用すると、関数ポインターを void ポインター (void*) に変換することで実現できます。
演算子<<次のように void ポインターを処理するようにオーバーロードされます:
ostream & operator <<( ostream &, const void * );
このオーバーロードにより、void ポインターを 16 進数形式で出力できます。関数ポインターには、演算子<<の標準ライブラリオーバーロードを含めることはできません。
関数ポインタを cout で直接出力しようとすると、暗黙的に別の型に変換されます。多くの場合、この変換の結果はブール値になりますが、正確な変換規則は実装によって定義されます。
cout を使用して関数ポインターを出力するには、次の手順を実行できます。
int (*pf)(); pf = foo;
cout << "cout << (void *)pf is " << (void *)pf << endl;
cout << "cout << (void *)pf is " << (void *)pf << endl;
以上がC で `cout` を使用して関数ポインタを出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。