[英]New to C++, signature definition
我有一个用C ++编写的函数:
foo (IN bool someMode = false)
这意味着什么? someMode总是会初始化为false吗? 即使foo是用true调用的?
这意味着即使foo
接受一个参数,您也可以在不传递任何参数的情况下调用此函数:
foo(); //ok
如果您这样调用,则someMode
值将为false
,因为这是其默认值。 函数签名中的someMode = false
意味着,如果不传递任何参数,则someMode
将为false
。 在编程中,此类参数被称为默认参数,在此情况下, false
被称为该参数的默认值。
但是,如果您愿意,可以传递参数:
foo(false); //ok
foo(true); //ok
它是默认参数,如果您调用以下命令,基本上可以忽略它:
foo();
那么someMode仍然存在,并设置为false,但是如果您调用
foo(true);
那么someMode将为true。
通常, IN
是不执行任何操作的宏,只是让您知道参数是该函数的输入,因此您真正拥有的是foo(bool someMode=false)
。 您剩下的是默认参数。 这意味着您可以这样调用代码:
foo(true); // Here someMode=true
foo(false); // Here someMode=false
或像这样
foo(); // Here someMode=false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.