1

我正在浏览一个 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 */ }

其中该字段在成员函数定义之一之前被引用

在定义之前说明字段名称的目的是什么?是范围问题吗?

谢谢

4

1 回答 1

1

StatePair一个类型。它在函数定义前面的目的是说明函数的返回类型

注意 的typedef定义中的StatePair。它为类型引入了名称别名。在这种情况下std::pair<ExecutionState*,ExecutionState*>也会被调用StatePair,所以你不必写那个长类型名

函数的返回类型命名函数返回的值必须属于的类型。例如,在

int f();

该函数f必须返回一个整数 ( int),因此我们可以编写如下定义:

int f() {return 0;}

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

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

int
f() {...}

与上述功能相同。

于 2012-06-11T11:26:26.247 回答