QT创建者,返回(C++)
QT Creator, return (C++)
有人能解释一下为什么使用这两种类型的返回吗?
int parse(QTextStream& out, const QString fileName) {
QDomDocument doc;
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly|QIODevice::Text)) {
out<<"Datei "<<fileName<<" nicht lesbar"<<endl;
> return 1;
}
QString errorStr;
int errorLine;
if (!doc.setContent(&file, false, &errorStr, &errorLine)) {
out<<"Fehler in Zeile "<<errorLine<<": "<<errorStr<<endl;
> return 2;
}
...
}
这是另一个节目的一部分。为什么这里的代码与的工作方式不同
返回0;
int main(int argc, char *argv[])
{
QTextStream out(stdout);
out.setCodec("UTF-8");
if (argc != 3) {
out<<"Usage: "<<argv[0]<<" XML-Datei ist nicht vorhanden."<<endl;
return(1);
}
List wayList(out, argv[1]);
out<<"DOM-Baum gelesen."<<endl;
wayList.convert(argv[2]);
return 1;
}
在第一个示例中,函数会提前返回以指示错误。无法打开该文件,因此函数会向该函数的调用方返回一个值。无法设置内容,函数向调用方返回了一个不同的值。
if (!file.open(QIODevice::ReadOnly|QIODevice::Text)) {
out<<"Datei "<<fileName<<" nicht lesbar"<<endl;
return 1; // return value to caller
}
例如,函数可以调用parse并检查其返回值是否成功:
if ((parse(args...)) == 0) // success
在函数main()
的末尾,return 0;
表示程序运行成功。
相关文章:
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 什么时候在C++中返回常量引用是个好主意
- 你能重载对象变量名本身返回的内容吗
- 为什么 Serial.println(<char[]>);返回随机字符?
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 如何获取std::result_of函数的返回类型
- QueryWorkingSet总是返回false
- (C++)分析树以计算返回错误值的简单算术表达式
- 访问者访问变体并返回不同类型时出错
- 如何返回一个类的两个对象相加的结果
- OpenInventor从9.8升级到10.4.2后,GLSL纹理返回零
- lower_bound()返回最后一个元素
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 如何取消对nullptr的屏蔽,返回正确的对象
- 奇怪的结构&GCC&clang(void*返回类型)
- 架构决策:返回std::future还是提供回调
- 从python中调用C++函数并获取返回值
- 矩阵向量乘法(cublasDgemv)返回零
- 为什么模板类中的对象不能返回值