21xrx.com
2024-09-19 09:24:41 Thursday
登录
文章检索 我的文章 写文章
C++中形参默认值应该在声明处还是定义处?
2023-07-05 05:27:21 深夜i     --     --
C++ 形参 默认值 声明处 定义处

在C++中,函数的形参默认值可以在函数声明处或函数定义处指定。不过,两者的区别在于声明处指定时只针对该声明,而定义处指定时则针对所有调用该函数的地方。

当在函数声明处指定形参默认值时,只有包含该声明的文件能够使用该默认值。如果其他文件引用了该函数并省略了该形参,编译器会给出错误提示。而在函数定义处指定形参默认值时,任何调用该函数的地方都会使用该默认值,且无需在声明处重复指定。

因此,一般建议在头文件中声明函数时指定形参默认值,以便在包含该头文件的文件中使用该默认值;在源文件中定义函数时也可以指定相同的默认值,避免在不同的调用处频繁重复指定。但对于只在单个文件中使用的函数,直接在定义处指定形参默认值也是可以的。

除了上述区别外,函数的形参默认值还应满足以下规则:

1. 默认值只能设置在参数列表的末尾,且只能从右往左依次省略。

2. 一旦在某个形参上指定了默认值,它后面的所有形参都必须有默认值。

3. 默认值只能使用常量表达式(如字面值、全局常量等),不能使用变量或函数调用等表达式。

综上,C++中函数形参默认值的指定位置应根据需求和设计确定,同时需遵循上述规则。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复