带有int和char*的c ++重载构造函数

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)


mfo*_*ini 6

您可以使用"explicit"关键字:

explicit CBigInt(const char *);
Run Code Online (Sandbox Code Playgroud)

使用此方法,必须将参数显式转换为const char*,否则将执行CBigInt(unsigned).