我刚刚在 C++ 中看到了函数原型的这种语法:
explicit String(unsigned char value, unsigned char base=10);
我以前没见过这个,但base
不管你用什么称呼它,我假设它设置为 10 是否正确?
我刚刚在 C++ 中看到了函数原型的这种语法:
explicit String(unsigned char value, unsigned char base=10);
我以前没见过这个,但base
不管你用什么称呼它,我假设它设置为 10 是否正确?
默认参数,被调用base
将采用您发送的任何值,或者值 10,如果您将其关闭,例如通过调用
String(0);
鉴于您可以只使用一个参数调用它,因为第二个参数可以是默认值,所以可以将构造函数标记为explicit
. 这意味着它不会在您不注意的情况下从 an 创建临时unsigned char
对象,您必须显式调用构造函数。
base
有一个默认值。您可以为每个参数分配一个默认值,因为所有后续参数也具有默认值。
explicit
防止隐式转换,因此String k = 0
不会被接受为有效 -String(0, 10)
否则它会调用。