C++函数默认参数

C++中允许为函数提供默认参数,又名缺省参数。

 

使用默认参数时的注意事项:

 

① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一

double sqrt(double f = 1.0); //函数声明

double sqrt(double f)  //函数定义
{
  // ....  
} 

② 没有函数(原型)时,默认参数在函数定义时指定.

//没有 函数声明

double sqrt(double f = 1.0)  //函数定义

③ 在具有多个参数的函数中指定默认值时,默认参数都必须出现在不默认参数的右边,一旦某个参数开始指定默认值,它右边的所有参数都必须指定默认值.

int f (int i1, int i2 = 2, int i3 = 3);     // 正确
int g (int i1, int i2 = 2, int i3);         // 错误, i3未指定默认值
int h (int i1 = 1, int i2, int i3 = 3);     // 错误, i2未指定默认值

④ 在调用具有默认参数的函数时, 若某个实参默认,其右边的所有实参都应该默认。

复制代码
//例如, 一个函数声明如下
int f(int i1 = 1, int i2 =2, int i3 = 3);


//调用函数 f()
f();             //正确, i1=1, i2=2, i3=3
f(3);            //正确, i1=3, i2=2, i3=3
f(2, 3);         //正确, i1=2, i2=3, i3=3
f(4, 5, 6);      //正确, i1=4, i2=5, i3=6
f(, 2, 3);       //错误, i1默认,其右边的i2和i3没有默认
复制代码

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------

参考资料:

<<C++面向对象程序设计(第二版)>>

http://www.cnblogs.com/graphics/archive/2010/07/15/1778291.html

posted @   LubinLew  阅读(26313)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示