我注意到当我在Visual Studio中创建一个新的C ++类时,它会将Foo(void)
和~Foo(void)
作为构造函数和析构函数模板而不是Foo()
和~Foo()
写下来。但是,这两个版本似乎都有效。两者之间是否存在差异,或者我使用哪个版本无关紧要?
答案 0 :(得分:5)
在C ++中,两者在技术上是相同的,就像在"一个不带参数的函数"
欲了解更多信息:
然而,在C中,Foo(void)是"一个不带参数的函数",但是Foo()是"一个接收未知量参数的函数。"这些参数属于未指定的类型。
Foo(void)用于两种语言,含义相同。
答案 1 :(得分:1)
两者都是等价的,所以这只是风格的选择。我更喜欢Foo()
,因为它涉及较少的打字,而且这是我经常看到的内容。
这个问题实际上是covered before on SO。
显然{C}中的foo()
表示"函数foo
采用未指定数量的未指定类型的参数"在C ++中,它意味着"一个不带参数的函数foo
。"
答案 2 :(得分:0)
只有当构造函数和析构函数不需要任何参数时,才有相同的参数。 Foo(void)
似乎也不常使用。