gpt4 book ai didi

c++ - 为什么不能将 void 传递给没有参数的函数?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:36 30 4
gpt4 key购买 nike

为什么编译器不把 return_nothing(return_nothing()) 当作 return_nothing(); return_nothing(); 因为return_nothing() 的返回类型是void?

void return_nothing() {}

int main()
{
return_nothing(return_nothing()); // compile error
}

直播:Wanbox

最佳答案

因为您正在使用 C++ 进行编程,而在 C++ 中不能在那里使用返回 void 的函数,并且您的编译器(至少是近似值)是标准描述的 C++ 语言。

在 C++ 中,没有 void 类型的值。 void 是没有值的类型。

void 传递给函数是非法的,因为函数采用值。

有一个小异常(exception):如果您有一个返回 void 的操作,您可以从另一个返回 void 的函数return ooeratio_returning_void();。这样做是为了使一些模板元编程更容易。

“将返回 void 的函数传递给不需要参数的函数”的问题有时也是模板元编程问题,但这种情况要少见得多。您通常只需使用一些样板文件即可解决此问题。

关于c++ - 为什么不能将 void 传递给没有参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929618/

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