Effective C++ 学习笔记(17)
2011-08-06 00:09 Daniel Zheng 阅读(192) 评论(0) 编辑 收藏 举报在函数重载和设定参数缺省值间慎重考虑
会对函数重载和设定参数缺省值产生混淆的原因在于,它们都允许一个函数以多种方式被调用:
void f(); // f 被重载
void f(int x);
f(); // 调用 f()
f(10); // 调用f(int)
void g(int x = 0); // g 有一个
// 缺省参数值
g(); // 调用 g(0)
g(10); // 调用 g(10)
那么,什么时候该用哪种方法呢?
答案取决于另外两个问题。第一,确实有那么一个值可以作为缺省吗?第二,要用到多少种算法?一般来说,如果可以选择一个合适的缺省值并且只是用到一种算法,就使用缺省参数。否则,就使用函数重载。