不同的是写void函数返回的方式
Difference in a way of writing a void function return
下面是我在这里找到的代码片段
void App::onSave()
{
if (filename.isEmpty())
return onSaveAs();
//do saving here
}
void App::onSaveAs()
{
QString f = QFileDialog::getSaveFileName(NULL, "Save as", "", "*.sb");
if (!f.isEmpty())
{
//filename generation
return onSave();
}
}
我的问题是:这里写的return onSave();
和这样的东西有什么区别吗?
onSave();
return;
它让我感到困惑,因为函数是void类型,不返回任何东西。
c++标准规定:
带有void类型表达式的return语句只能用于返回类型为cv void的函数;表达式在函数返回给调用者之前求值。
所以这两种形式在c++中是等价的。
注意C标准说:
带表达式的返回语句不能出现在返回类型为void的函数中
c++中这种限制的放宽可能与模板有关。
你问:
return onSave();
和
onSave(); return;
相关文章:
- 从函数返回const char*数组
- 检查函数返回类型是否与STL容器类型值相同
- 从 c 或 cpp 系列子函数返回到主函数
- 从函数返回任意简单类型的数据
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 从 C++ 中的函数返回数组地址问题
- VirtDisk.h QueryChangesVirtualDisk() 函数返回 RangeCount 为 0
- 为什么glGetSubroutineIndex为不同的函数返回相同的值?
- 在 c++ 中将函数返回类型指定为模板参数
- 从封装在对象中的函数 C++ 返回时为空的列表
- 为什么向量内部的指针在从函数返回时会发生变化?
- 函数返回的 rvalue 引用(表达式)是 xvalue - 但没有标识?
- 程序中的布尔函数返回输入的范围无论如何都是无效的
- 寿命延长从函数返回引用
- 程序不向函数返回值
- 字符串函数返回奇怪的值
- 类的大问题,以及从空函数c++返回
- 为什么在尝试测量函数返回所需的时间时,我的运行时编号是错误的?
- C++二叉搜索树模板从函数返回节点
- NVCC 错误:string_view.h:constexpr 函数返回是非常量