2010-02-11 81 views
2

因此,这里是我的函数声明的问题有一种说法,它已经被初始化到一定值。什么是调用此函数并使用该默认值的过程,或者它只是一种文档代码的方式,告诉其他程序员您期望它们用作参数的值?谢谢。函数参数已经初始化函数声明C++

enum File 
{ 
    XML = 0, 
    PDF = 1, 
}; 

Char *SetSection(const File = XML); 
+0

您也可以将其与多个参数一起使用。但在这种情况下,如果您为参数_N_提供默认值,则还必须为所有后续参数提供默认值。调用者然后必须提供至少_N_ - 1个参数。 – MSalters

回答

4

如果我正确理解你的问题,只是要求SetSection不带参数就可以了。

SetSection(); 

上述呼叫被转换(因为缺乏一个更好的词)来:

SetSection(XML); 
+0

这正是我的问题,真棒,这是一个我从来不知道的有趣功能。 – DogDog

0

XML是标准参数。 你可以把它与SetSection();(但SetSection(XML)SetSection(PDF)是有效的,太)。

1

如果你打电话

SetSection(); 

它将调用SetSection(XML)来代替。 这就是为什么可选参数必须位于所有参数的末尾。如果你没有提供足够的参数,它将使用默认值。

3

这意味着函数可以在没有在此情况下,缺省值,XML,将被使用的参数被调用。

2

在这种情况下,Filedefault argument。在没有参数的情况下调用SetSection()将会将File参数设置为声明中指定的默认值。

0

你看到在声明什么是默认的参数值。

如果你打电话SetSection();它是与调用SetSection(XML);

您也可以拨打SetSelection(PDF);或使用任何其他有效的参数来覆盖默认。

您也可能会看到它开始与功能没有参数,并呼吁散落在代码的函数的增量发展的结果。然后引入了替代文件类型的PDF,但原型被更改为具有默认值,这意味着不必更改现有的调用站点。