C++不止一次返回

C++ returning more than once?

本文关键字:返回 不止一次 C++      更新时间:2023-10-16

这是否有效?项目会编译吗?我现在无法访问编译器,但我的朋友在他的代码中有这个:

int returnTwice () {
  return 1;
  return 2;
}

为什么以及如何不合适?

谢谢!

谢谢所有有建设性话要说的人。

部分有效。

无效的部分是您尝试在表达式中声明变量,这是不允许的。但是,拥有多个无条件return语句并不违法,但是只会执行第一个语句。

不,这在C++或我所知道的任何其他编程语言中是不可能的。

正如另一位回答您问题的用户所说,只会执行第一个return语句。完全取决于编译器,它可能会给你一个错误或警告,指出你在一个定义的范围内有两个return函数,这里没有语法错误。

通过将

每个变量放入向量中并返回它,可以在C++中返回两个或多个值,如本问题中所述。

return返回分配给它的值并退出函数。

在其他编程语言(如Lua)中,可以使用return variable1, variable2;

这在

C++是不可能的。但是,如果您想要类似的行为,则可以使用 boost::tuple .

boost::tuple<double,double> figInfo(const Figure& fig)
{
  double p = fig.getPerimeter();
  double s = fig.getSurface();
  return boost::make_tuple(p,s);
}
boost::tuple<std::string, unsigned short int, std::string> profile()
{
  std::string first_name = "Christophe";
  unsigned short int age = 29;
  std::string address = "Unspecified";
  return boost::make_tuple(first_name, age, address);
}

当函数返回时,它将停止执行。执行第一次返回后的所有内容将永远不会被执行。因此,您应该得到此类函数的"错误:无法访问的代码"。