c++怎么设置函数的参数是可选的

 我来答
翁锦文
推荐于2018-03-30 · TA获得超过10.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:72%
帮助的人:5041万
展开全部
要区分输入、输出、输入/输出参数,以及值和引用参数。
选择如何传递参数时尽量遵循以下准则:
对于输入参数
1.用const修饰作为输入参数的指针或引用;
2.对于原始类型(如char float)和拷贝开销较小的值对象(如Point,complex<float>),应采用值传递参数
3.对于其他用户定义的类型应采用const引用
4.如果函数需要它的参数的一份拷贝,考虑使用传值而不是引用。这在概念上等同于采用const引用加上一次拷贝,有助于编译器更好地优化掉临时变量。

对于输出或输入/输出参数,
1.如果参数是可选的(调用者可以传递null),或如果函数存储参数的一份拷贝以避免函数操纵参数的所有权,应传递(智能)指针。
2.如果需要参数且函数不存储指向参数的指针以避免影响其所有权。这表明了参数确实是需要的,调用者负责提供正确有效的对象。

不要使用C风格的varargs。

26.保持重载操作符的自然语义
重载操作符必须有很好的理由,并保持其自然语义,如果这很难做到,也许是对重载操作符的误用。
对于值类型(不是所有的类型):"When in doubt, do as the ints do."模仿操作符作用于内建类型时的行为和关系能确保不会产生其他令人惊讶的语义。

程序员希望相关操作符一起定义。如果表达式a@b对于定义的操作符@合法,调用者是否可以写b@a,a@=b?如果操作符可以倒转(如+-*/),两者是否都支持?

有一些很特殊的类库(如分析器生成器,正则表达式引擎等),他们为操作符定义了特定于领域的语义,和C++含义完全不同。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天蝎神经侠侣
高粉答主

2015-06-16 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:724万
展开全部
要区分输入、输出、输入/输出参数,以及值和引用参数。
选择如何传递参数时尽量遵循以下准则:
对于输入参数
1.用const修饰作为输入参数的指针或引用;
2.对于原始类型(如char float)和拷贝开销较小的值对象(如Point,complex<float>),应采用值传递参数
3.对于其他用户定义的类型应采用const引用
4.如果函数需要它的参数的一份拷贝,考虑使用传值而不是引用。这在概念上等同于采用const引用加上一次拷贝,有助于编译器更好地优化掉临时变量。

对于输出或输入/输出参数,
1.如果参数是可选的(调用者可以传递null),或如果函数存储参数的一份拷贝以避免函数操纵参数的所有权,应传递(智能)指针。
2.如果需要参数且函数不存储指向参数的指针以避免影响其所有权。这表明了参数确实是需要的,调用者负责提供正确有效的对象。

不要使用C风格的varargs。

26.保持重载操作符的自然语义
重载操作符必须有很好的理由,并保持其自然语义,如果这很难做到,也许是对重载操作符的误用。
对于值类型(不是所有的类型):"When in doubt, do as the ints do."模仿操作符作用于内建类型时的行为和关系能确保不会产生其他令人惊讶的语义。

程序员希望相关操作符一起定义。如果表达式a@b对于定义的操作符@合法,调用者是否可以写b@a,a@=b?如果操作符可以倒转(如+-*/),两者是否都支持?

有一些很特殊的类库(如分析器生成器,正则表达式引擎等),他们为操作符定义了特定于领域的语义,和C++含义完全不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WEN11PANIC
2012-10-14 · TA获得超过282个赞
知道小有建树答主
回答量:486
采纳率:0%
帮助的人:482万
展开全部
使用默认参数:
例如:
int sum(int a=8, int b=6);

调用时:
sum();//传进去的值 a默认为8,b默认为6
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shmilyaqe
2012-10-14
知道答主
回答量:25
采纳率:0%
帮助的人:9.1万
展开全部
没学明白啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式