ここで何が起こっているのかわかりません
class A{};
class B : A {};
void func(A&, bool){}
void func(B&, double){}
int main(void)
{
B b;
A a;
bool bo;
double d;
func(b, bo);
}
コンパイル時に、Visual2010はこのエラーをオンラインで表示しますfunc(b, bo);
2 overloads have similar conversions
could be 'void func(B &,double)'
or 'void func(A &,bool)'
while trying to match the argument list '(B, bool)'
boolパラメーターが過負荷を解決するのに十分でない理由がわかりません。私はこの質問を見てきました、そして受け入れられた答えで指摘されているように、boolはboolの過負荷を好むはずです。私の場合、最初のパラメーターでは適切な関数を選択するのに十分ではないことがわかりますが、2番目のパラメーターがあいまいさを解決しないのはなぜですか?