读书笔记:Effective C++ 2.0 版,条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)

编程入门 行业动态 更新时间:2024-10-12 20:22:52

读书笔记:Effective C++ 2.0 版,<a href=https://www.elefans.com/category/jswz/34/1761563.html style=条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)"/>

读书笔记:Effective C++ 2.0 版,条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)

条款24: 在函数重载和设定参数缺省值间慎重选择
基于例子说明,个人觉得核心准则是:尽量简单就行了,简单不了就不要怕麻烦。

//能找到缺省值
int max(int a,int b = std::numeric_limits::min(),int c = std::numeric_limits::min(),int d = std::numeric_limits::min(),int e = std::numeric_limits::min()){int temp = a > b ? a : b;temp = temp > c ? temp : c;temp = temp > d ? temp : d;return temp > e ? temp : e;
}
//avg没有合适的缺省值
double avg(int a);
double avg(int a, int b);
double avg(int a, int b, int c);
double avg(int a, int b, int c, int d);
double avg(int a, int b, int c, int d, int e);

条款25: 避免对指针和数字类型重载
0==NULL

void f(int x);
void f(string *ps);
f(0); f(NULL); //存在歧义

nullptr出现后似乎就没有这个问题。

更多推荐

读书笔记:Effective C++ 2.0 版,条款24(参数缺省值)、条款25(int 0与NULL *歧义问题)

本文发布于:2023-12-04 06:42:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1660062.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:条款   歧义   读书笔记   参数   Effective

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!