[英]What does it mean when a parameter is assigned a value in the function prototype?
我刚刚在C ++中看到了函数原型的以下语法:
explicit String(unsigned char value, unsigned char base=10);
我以前从未见过,但是不管您用什么来称呼它都将base
设置为10,对吗?
默认参数(称为base
将采用您发送的任何值,如果不使用该参数,则取值10,例如通过调用
String(0);
鉴于您只能使用一个参数调用它,因为第二个参数可以默认设置,所以可以将构造函数标记为explicit
。 这意味着,如果您不注意,就不会根据unsigned char
创建临时文件,必须显式调用构造函数。
base
具有默认值。 您可以为每个参数分配默认值,前提是以下所有参数也都具有默认值。
explicit
防止隐式转换,因此String k = 0
将不被视为有效-否则将调用String(0, 10)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.