读书笔记: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出现后似乎就没有这个问题。

你可能感兴趣的:(cpp,c++,数据结构)