C++:contructor() 和 constructor(void) 之间的区别

C++: Difference between contructor() and constructor(void)

本文关键字:之间 区别 void contructor C++ constructor      更新时间:2023-10-16

我注意到,当我在Visual Studio中创建一个新的C++类时,它会将Foo(void)~Foo(void)写为构造函数和析构函数模板,而不是Foo()~Foo()。但是,这两个版本似乎都有效。两者之间有区别还是我使用哪个版本根本不重要?

在C++中,两者在技术上是相同的,就像"一个没有参数的函数"一样。

欲了解更多信息:

然而,在C语言中,Foo(void)是"

一个不接受参数的函数",但Foo()是"一个接受未知数量参数的函数"。这些参数属于未指定的类型。

Foo(void) 在两种语言中使用,具有相同的含义。

两者都是等效的,所以这只是一种样式选择。我更喜欢Foo()因为它涉及较少的打字,而且这是我经常看到的。

这个问题实际上在SO之前已经讨论过。

显然,foo()在C中意味着"一个函数foo接受未指定数量的未指定类型的参数",而在C++中,它意味着"一个foo不带参数的函数"。

只有当构造函数和析构函数不需要任何参数时,才有相同的参数。此外,Foo(void)似乎不太常用。