函数/方法的默认参数是否应该驻留在定义或声明中?什么是最佳实践,为什么?
class Test
{
void method( bool flag /* = true */ ); // here?
};
void Test::method( bool flag /* = true */ ) // or here?
{
}
答案 0 :(得分:1)
“类模板的成员函数的默认参数 应在类模板
中的成员函数的初始声明中指定
如果想要一个也适用于非模板代码的约定,最好将默认值放在第一个声明中。
对于可读性而言,这通常也是最实用的。
对于非模板代码,您可以在函数的后续重新声明中稳定地添加默认值,但必须可以省略右侧所有参数的实际参数。基本上这意味着减少尚未默认的参数的数量。我没有看到这个或任何理由的实用性,我从未在实践中看到它。
无论如何,关于你的语句in a comment“或者在定义中,好像它改变了你不必重新编译头”,请注意编译器在调用函数的地方必须可以看到默认值
答案 1 :(得分:0)
在这里做到
class Test
{
void method( bool flag /* = true */ ); // here?
};
保持概览并让您的生活更轻松。