6

我想知道以下两个声明之间的区别在头文件中我遇到了这两种样式

void some_method(int);

第二种风格是:

void some_method(int a);

一种风格比另一种风格有什么好处吗?对我来说,一种风格只是没有变量的名称,并且变量的名称必须在随附的 cpp 文件中实现。

4

7 回答 7

9

功能上没有区别,但我经常使用参数名称作为文档的一种形式,如下所示:

void verbTheThing(int verbId, int thingId);

当我没有什么有价值的东西要添加时,我只是不添加它:

int max(int, int);
于 2013-06-20T09:12:15.143 回答
4

主要关注的是一致性。选择一个并坚持下去。我个人更喜欢第二种,因为参数名称可以描述功能,并且自记录的代码比替代方法更好。

于 2013-06-20T09:12:46.143 回答
3

主要区别在于可读性。第二个版本更长,但有参数的名称可能是一个真正的帮助。小例子:

int move(int, int, int, int);

int move (int fromX, int fromY, int toX, int toY);
于 2013-06-20T09:13:06.507 回答
2

一些开发环境(Visual Studio、Borland C++ Builder,例如eclipse也应该有这个功能)在输入(括号时会自动列出函数参数。

列出参数

对于那些 IDE,确保函数参数名称(在标头内)尽可能具有描述性是一种常见的礼貌,因为它们用作文档。

即使程序员没有具有此功能的 IDE,前向函数声明(在标头中)也应始终尽可能具有描述性。出于同样的原因 - 打开标题并阅读函数参数的含义更容易,而不是在无数*.cpp文件中寻找函数体。

更不用说在某些函数中,如果没有参数名称,您就无法弄清楚参数应该是什么意思。

例如,

 Image::blitRect(int, int, int, int);

可能

 Image::blitRect(int x1, int x2, int y1, int y2);
 Image::blitRect(int x1, int y1, int x2, int y2);
 Image::blitRect(int x, int y, int width, int height);

当然,在这种情况下,C++ 程序员会为 Point 和 Size 添加类,但那是另一回事了。

于 2013-06-20T09:26:35.383 回答
1

就编译而言,两者都没有任何区别。但是第二个更好,因为给参数命名可以增加代码的可读性并帮助人们更好地理解它

于 2013-06-20T09:14:01.633 回答
1

这两个选项都有效。但是在 header 中指定参数名称可以极大地帮助阅读函数签名的人快速弄清楚它实际上做了什么以及参数代表什么数据。

于 2013-06-20T09:18:50.370 回答
0

实际上,它们之间没有区别。它归结为你在哪里声明你的方法......例如,如果你在“main()”函数之前声明你的函数。您可能不需要关心参数名称。但是,在方法声明之前,您必须在定义中引入参数名称。它只是代码风格,让您和任何人都能阅读您的代码

于 2013-06-20T09:29:55.973 回答