C++不止一次返回
C++ returning more than once?
这是否有效?项目会编译吗?我现在无法访问编译器,但我的朋友在他的代码中有这个:
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);
}
当函数返回时,它将停止执行。执行第一次返回后的所有内容将永远不会被执行。因此,您应该得到此类函数的"错误:无法访问的代码"。
相关文章:
- 从子菜单返回后,正确的输入至少进入验证循环一次
- 是否有一种方法可以在运行时停止循环重复一次不止一次
- 不止一次使用strtok_s
- 如何在返回一次数据后从类实例中删除数据
- C++ _tWinMain运行不止一次
- 递归:一次返回
- 为什么一个物体被破坏不止一次?[c++11]
- C++不止一次返回
- opengl/glut 中的 renderDisplayFunc 不止一次调用 myfunc
- 如何使用C++单一实例返回仅初始化一次的对象
- C++重载getter两次,一次返回指针,另一次返回常量引用,都失败了
- c++纸牌游戏,当新一轮牌组创建/新一轮开始时,手牌被发不止一次
- 如何在c++中一次又一次地从函数返回
- 如何使用数据类型的一次返回来返回错误
- 如何写函数整洁?考虑到log,一次返回,不再缩进
- 为什么popn()一次又一次调用返回相同的输出
- Std::istringstream.good()比预期多返回一次true
- 循环一个精灵以显示不止一次
- "Peek ahead"检查下一次对getline(file,line)的调用是否会返回false - 而不实际调用它,即不消耗该行
- 为什么在输入字母时这个循环不止一次