繁体   English   中英

C ++的新功能,签名定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM