質問

ポインターは、オーバーロード解決にいくつかの特別な問題を提示します。

たとえば、

void f(int* x) { ... }
void f(char* x) { ...}
int main()
{
    f(0);
}

f(0)の呼び出しの何が問題になっていますか? f(0)の関数呼び出しを修正するにはどうすればよいですか?

役に立ちましたか?

解決

f((int *)0)または f((char *)0)

しかし、あなたがこれをしていることに気付いたら、あなたのデザインをもう一度見てみましょう。

他のヒント

キャストするか、まったく使用しないでください:

f((int*)0);

f(0)の呼び出しの何が問題なのか、解像度があいまいです。オーバーロードされた関数は両方ともポインターを取りますが、この場合はキャストによってのみ解決できます。

f((int*)0)

ここでやろうとしていることに応じて、あいまいではない他のオプションがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top