我想知道以下两个声明之间的区别是在头文件 我所遇到这两种风格函数原型文件
void some_method(int);
和第二风格是:
void some_method(int a);
一种风格是否比另一种风格有任何好处。对我而言,一种风格只是没有变量的名称,变量的名称必须在随附的cpp文件中实现。
我想知道以下两个声明之间的区别是在头文件 我所遇到这两种风格函数原型文件
void some_method(int);
和第二风格是:
void some_method(int a);
一种风格是否比另一种风格有任何好处。对我而言,一种风格只是没有变量的名称,变量的名称必须在随附的cpp文件中实现。
有一个在功能上没有区别,但我经常使用的参数名称作为文件的形式,像这样:
void verbTheThing(int verbId, int thingId);
当我没有什么有价值的补充,我只是不添加:
int max(int, int);
主要问题是一致性。挑一个并坚持下去。我更喜欢第二个人,因为参数名称可以描述功能和自编写代码比替代方案更好的代码。
+1;不过,我通常会对默认和删除的特殊功能进行例外处理。 –
主要区别在于可读性。第二个版本更长,但有了参数的名称可能是一个真正的帮助。小例子:
int move(int, int, int, int);
int move (int fromX, int fromY, int toX, int toY);
两者都没有,就汇编而言有什么区别。但第二个更好,因为给参数命名会增加代码的可读性,并且可以帮助人们更好地理解它。
这两个选项都是有效的。但是在头文件中指定参数名称可以极大地帮助读取函数签名的人快速找出它实际做了什么以及参数代表什么数据。
当您输入(
括号时,某些开发环境(Visual Studio,Borland C++ Builder,例如eclipse也应该具有此功能)会自动列出函数参数。
对于那些集成开发环境是最起码的礼貌确保函数参数名称(头内)尽可能的描述,因为它们作为文档。
即使程序员没有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++程序员会添加类在这种情况下点和尺寸,但这是另一个故事。
其实,它们之间没有区别。 它归结为你声明你的方法的地方... 例如,如果你在“main()”func之前声明你的函数。 你可能不需要关心参数名称。但是,在方法 声明之前,您必须定义您的参数名称。 它只是代码风格,使您和任何人都可以阅读代码
保持声明和定义相同 - 您可以轻松地在一个和另一个之间进行复制和粘贴 - 如果您觉得这并不容易使用简短的表单来申报。 –
感谢这帮助 – MistyD
@PaulR好点。我可能会说我在将原型放入头文件时努力去除无意义的(潜在分散注意力的)参数名称。 –