cou*_*ech 5 c++ constructor overloading ambiguity
我尝试用int和重载构造函数char *.然后在电话中有歧义0.有没有解决方法/解决方案?
CBigInt (unsigned int);
CBigInt (const char *);
Run Code Online (Sandbox Code Playgroud)
问题在于0:
CBigInt a;
// some more code
a *= 0;
Run Code Online (Sandbox Code Playgroud)
谢谢回答.
Eri*_*rik 10
使其中一个构造函数显式化.它只会在传递类型完全匹配时使用.
CBigInt (unsigned int);
explicit CBigInt (const char *);
Run Code Online (Sandbox Code Playgroud)
您可以使用"explicit"关键字:
explicit CBigInt(const char *);
Run Code Online (Sandbox Code Playgroud)
使用此方法,必须将参数显式转换为const char*,否则将执行CBigInt(unsigned).