gpt4 book ai didi

c++ - 为什么不能在 C++ 中创建 void 类型的对象?

转载 作者:IT老高 更新时间:2023-10-28 22:33:25 25 4
gpt4 key购买 nike

C++ 不允许创建 void 类型的对象。这是为什么呢?

最佳答案

考虑下面的代码。

class Foo
{
// etc ...
};

int main()
{
// Declaring an object...
Foo foo;
// foo has been created.

// etc ...

return 0; // When function returns, foo will be destroyed.
}

为了知道如何实际创建对象,编译器必须知道类型。非正式地,您可以将 void 视为表示没有类型的“类型”。因此,编译器不可能知道如何创建 void 对象。你不能创建一个你不知道如何创建的对象。

int main()
{
void v; // "I don't know how to create this!"
}

话虽如此,在其他情况下 void 是有意义的。例如,void 函数没有返回值。您不能为不存在的事物(如返回值)分配类型。

您还可以有一个指向 voidvoid* 的指针。与普通的 void 不同,void* 是有效的,并且仅表示“指向某个未知类型对象的指针”。显然,在将 void* 转换为实际的已知类型(当然,假设转换是安全的)之前,您无法对 void* 做很多事情。

关于c++ - 为什么不能在 C++ 中创建 void 类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5429855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com