小编Sjo*_*erd的帖子

为什么C++中的void方法可以返回void值,但在其他语言中它不能?

该程序在C++中编译和运行,但不是Java和C#等多种语言.

#include <iostream>
using namespace std;

void foo2() {
  cout << "foo 2.\n";
}

void foo() {
    return foo2();
}

int main() {

    foo();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Java中,这给出了编译器错误,如'Void方法无法返回值'.但由于被调用的方法本身就是一个void,因此它不返回值.我知道为了便于阅读,可能会禁止这样的结构.还有其他异议吗?

编辑:为了将来的参考,我在这里发现了一些类似的问题return-void-type-in​​-c-and-c 我个人认为这个问题还没有回答.回复'因为它在规范中这样说,继续'不会削减它,因为有人必须首先编写规范.也许我应该问'允许返回像C++这样的void类型有什么优缺点'?

c# c++ java void

14
推荐指数
1
解决办法
595
查看次数

标签 统计

c# ×1

c++ ×1

java ×1

void ×1