App*_*ker 13 c++ methods function void
在C++中使用void没有参数的函数,例如:
class WinMessage
{
public:
BOOL Translate(void);
};
Run Code Online (Sandbox Code Playgroud)
是多余的,你不妨写一下 Translate();.
我,我自己通常都包括它,因为它在支持IDE显示的代码完成时有点帮助void,因为它确保了该函数绝对没有参数.
我的问题是,添加无void参数函数是一个好习惯吗?现代代码应该鼓励它吗?
Fle*_*exo 23
在C++中
void f(void);
Run Code Online (Sandbox Code Playgroud)
与以下内容相同:
void f();
Run Code Online (Sandbox Code Playgroud)
第一种风格仍然可以合法编写的事实可归因于
C.n3290§C.1.7(C++和ISO C兼容性)状态:
更改:在C++中,使用空参数列表声明的函数不带参数.
在C中,空参数列表表示函数参数的数量和类型是未知的.
例:
Run Code Online (Sandbox Code Playgroud)int f(); // means int f(void) in C++ // int f( unknown ) in C
在C中,避免不受欢迎的"未知"含义是有意义的.在C++中,它是多余的.
简短的回答:在C++中,它是来自太多C编程的宿醉.这就把它放在"不要这样做,除非你真的必须"在我看来支持C++.
我完全没有理由这样做.IDE将使用空参数列表完成函数调用,并减少4个字符.
我个人认为这使得已经冗长的C++变得更加冗长.没有我所知道的语言版本需要在void这里使用.