在函数声明中,虽然不必命名参数,但是最好让它们命名?这有什么优点和缺点?函数声明参数命名最佳实践(C++)
回答
命名它们的好处是你可以在文档中引用它们。 (这包括你的编辑器/ IDE选择它们,并在你打出这样的函数时提示它们作为提示。)
缺点是名称可能会根据函数的实现而改变,除了事实函数声明中的名称可能与函数定义中的名称不同。 (IOW:我看不出有什么缺点)
对于文档的原因主要
如果定义和声明是相同的(给出或采用分号),维护也更容易 –
命名参数有当您使用支持自动完成的IDE工作显著的优势。当你开始输入你的函数的名字时,IDE弹出一个建议列表。看到findUser(string firstName, string lastName)
告诉你很多比简单findUser(string,string)
。
这是更多的风格问题。就个人而言,如果我看到没有命名参数的函数声明,我发现很难阅读。我认为你可以键入C++的能力越强,它就越好。
一个优势是,他们可以传达更多信息时,参数类型相同
考虑
CoordSystem CreateCoordinateSystem(const UnitVector& xdirection,
const UnitVector& ydirection, const UnitVector& zdirection
)
在
CoordSystem CreateCoordinateSystem(const UnitVector& ,
const UnitVector& , const UnitVector&)
在声明中不会有任何真正的编程优势或缺点。然而,有一个风格的优点,我能想到的:
当你没有在函数中使用的参数,你可以不命名在声明此参数和定义:
void foo(int);
void foo(int)
{
}
命名您在定义中没有使用的参数不是非法的,但是它是一个皮棉警告!我提到的样式优势不是在声明中命名参数,因此浏览头文件的人会知道某个参数未在定义中使用。但是,只有在定义和声明之间同步未命名时,才会这样。
这里的时候,你可能想没有名称的参数为例:
class Base
{
virtual void foo(int a) = 0;
};
class Child1
{
virtual void foo(int a) { std::cout << a + 1 << std::endl; }
};
class Child2
{
virtual void foo(int) { std::cout << "mwahaha" << std::endl; }
};
在这种情况下,参数没有命名,但仍必须提供,因为函数原型必须匹配其家长。
我不会downvote,但这并不完全适用。这个问题具体是关于**声明**中的参数命名,但是您所做的(有效)点仅适用于函数**定义**。 –
- 1. 函数参数最佳实践
- 2. JavaScript函数参考的最佳实践
- 3. 函数声明中的const最佳实践
- 4. 在main中声明的函数原型 - 最佳实践?
- 5. 函数中声明的常量,最佳实践?
- 6. DataContext命名最佳实践
- 7. Mule命名最佳实践
- 8. Sql命名最佳实践
- 9. C#方法命名最佳实践
- 10. 最佳实践命名约定子程序与输出参数
- 11. 的Perl:命名参数验证的最佳实践
- 12. 声明变量 - 最佳实践
- 13. PHP命名空间函数最佳实践
- 14. 最佳实践来处理命令行参数在C#
- 15. Autofac最佳实践传递参数
- 16. 参数检查最佳实践
- 17. PHP通过URL参数最佳实践
- 18. 参数验证,在Python最佳实践
- 19. 模型参数设置最佳实践?
- 20. PHP字符串参数最佳实践
- 21. 最佳实践作为参数
- 22. Rest Api参数验证最佳实践
- 23. URL参数的最佳实践
- 24. SOAP API参数最佳实践
- 25. shell输入参数的最佳实践?
- 26. C#最佳实践
- 27. 最佳实践 - C#
- 28. Win32 DLL导出函数参数最佳实践
- 29. 子程序/函数参数的最佳实践
- 30. winapi apc函数参数传递 - 什么是最佳实践
+1,但你也可能会提到,如果你在声明中加入了变量名,智能感知(或者你可能拥有的任何东西)都可以选择它们。这只不过是文档,而是一个有用的阐述。 –
@JohnDibling:的确,我忘记了! – sbi