Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C++;在实践中,我们可以把空洞视为一种类型吗?_C++ - Fatal编程技术网

C++ 在C++;在实践中,我们可以把空洞视为一种类型吗?

C++ 在C++;在实践中,我们可以把空洞视为一种类型吗?,c++,C++,一些教程将void定义为一种类型,但实际上它只是一个关键字,一个表示“无类型”的占位符。因此,如果我们说void实际上不是一种类型,对吗?C++标准说void是一种无法完成的不完整类型(与其他可以完成的不完整类型不同)。 这意味着您不能将sizeof运算符应用于void,不能声明类型为void的变量,但可以使用指向不完整类型的指针,并声明返回该类型的函数。如果声明返回类型为void,则函数没有返回。这是不正确的。关键字>代码> Vult可以用于C++需要类型的许多地方,例如在模板参数中。它在语法

一些教程将void定义为一种类型,但实际上它只是一个关键字,一个表示“无类型”的占位符。因此,如果我们说void实际上不是一种类型,对吗?

C++标准说void是一种无法完成的不完整类型(与其他可以完成的不完整类型不同)。


这意味着您不能将
sizeof
运算符应用于
void
,不能声明类型为
void
的变量,但可以使用指向不完整类型的指针,并声明返回该类型的函数。如果声明返回类型为void,则函数没有返回。

这是不正确的。关键字>代码> Vult可以用于C++需要类型的许多地方,例如在模板参数中。它在语法上不是占位符。当然,模板作者仍然可以决定将
void
视为“无类型”的意思;这是一种常见的解释

throw
表达式显式具有
void
类型,即使此处未使用关键字
void


函数调用表达式可以具有
void
类型,而
void
函数中的
return
语句可以采用
void
表达式。

从理论和实践上看,它的a类型就像一个复制品。这只是一个非常特别的问题,因为它没有价值。这是否回答了你的问题?它是类型系统的一部分,列在标准中的内置类型中。当然,它是一个不规则的类型,但仍然是一个类型。在类型系统中有一个无人居住的类型是很有用的。它在算术上类似于零。在一些情况下,
void Foo(){return void();}
可能是一个有用的构造。这些情况主要是模板和宏,但了解语法很有用。