2012-02-15 45 views
0

我有一个函数用C++编写:新到C++,签名定义

foo (IN bool someMode = false) 

这是什么意思? 将someMode始终初始化为false?即使foo被称为真?

回答

3

这意味着即使foo有一个参数,你可以调用这个函数不传递任何参数为:

foo(); //ok 

如果这样调用,然后someMode值将是false,因为这是它的默认的值是。 someMode = false在函数签名的意思是,如果没有参数传递,那么someMode将是false。在编程中,这样的参数被称为默认参数,并且在这种情况下false被称为默认值参数的值。

但是,如果你愿意,你可以传递参数:

foo(false); //ok 
foo(true); //ok 
+1

真棒! thakns很多为您的帮助! – adisar86 2012-02-15 02:03:32

0

其默认的参数,可以让你忽略它,基本上,如果你拨打:

foo(); 

然后someMode仍然会存在并被设置为假,但如果您致电

foo(true); 

那么someMode将为true。

+0

再次感谢您的快速回复! – adisar86 2012-02-15 02:04:31

0

通常IN是不做任何事的宏,只是让你知道参数是函数的输入,所以你真正拥有的是foo(bool someMode=false)。你留下的是一个默认参数。这意味着你可以调用这样的代码:

foo(true); // Here someMode=true 
foo(false); // Here someMode=false 

或类似这样的

foo(); // Here someMode=false 
+0

谢谢Michael!欣赏快速反应! – adisar86 2012-02-15 02:04:10