在函数定义之前引用字段

时间:2012-06-11 11:23:33

标签: c++ function

我正在浏览c ++代码库,在头文件(Executor.h)中有公共字段定义

typedef std::pair<ExecutionState*,ExecutionState*> StatePair;

在cpp文件(Executor.cpp)中有一行

Executor::StatePair 
Executor::fork(ExecutionState &current, ref<Expr> condition, bool isInternal) { /* function definition */ }

其中一个成员函数定义

之前引用了该字段

在定义之前陈述字段名称的目的是什么?是否存在范围问题?

由于

1 个答案:

答案 0 :(得分:1)

StatePair类型。它在函数定义之前的目的是声明函数的返回类型

请注意typedef定义中的StatePair。它为类型引入了名称别名。在这种情况下,std::pair<ExecutionState*,ExecutionState*>也将被称为StatePair,因此您不必编写该长类型名称

函数的返回类型指定从函数返回的值必须属于的类型。例如。在

的情况下
int f();

函数f必须返回一个整数(int),所以我们可以这样写一个定义:

int f() {return 0;}

函数体中可能还有其他语句,但最后一个语句必须是return后面带有整数值(在bavode示例中,值为0

由于C ++不关心新行(将它们视为常规空格),格式为

int
f() {...}

与上述功能相同。