默认参数与重载 wrt.名称查找

Default Arguments vs. Overloading wrt. Name Lookup?

本文关键字:查找 wrt 重载 参数 默认      更新时间:2023-10-16

在C++中,给定替代方案:

void fun(int arg1, int arg2opt = 0);
// vs.
void fun(int arg1, int arg2);
void fun(int arg1) {
  fun(arg1, 0);
}

对于想要使用此函数的用户代码,即给定任何代码库,当我将第一个定义更改为第二个定义时,哪些代码构造会中断(在编译时或运行时)是否有任何区别?(过载解决方案?名称查找?fun分配给函数指针?在模板中的用法(std::function)?...)

还是这些在语义上是一样的?(这里有一些我知道的细节,与这个问题无关)

我认为这个链接对开始很有用,但是你命名template,我在template有过经验,如果你的程序很有生产力,没有时间学习学习模板,请停下来,在假期学习模板。它没有任何快速参考,它的错误与OOD/P略有不同,但如果您有时间,请启动它。