有人可以解释这个C ++ typedef吗?

时间:2010-02-17 05:15:55

标签: c++ typedef

我已经开始使用C ++了很长一段时间没用过它。虽然大部分都有意义,但有些位我发现有点confuddling。例如,有人可以解释这一行的作用:

typedef bool (OptionManager::* OptionHandler)(const ABString& value);

4 个答案:

答案 0 :(得分:26)

它将类型OptionHandler定义为指向类OptionManager的成员函数的指针,并且此成员函数采用类型const ABString&的参数并返回{{1} }。

答案 1 :(得分:9)

typedef bool (OptionManager::* OptionHandler)(const ABString& value);

让我们从:

开始
OptionManager::* OptionHandler

这表示::* OptionHandler是类OptionManager的成员函数。 *前面的OptionHandler表示它是指针;这意味着OptionHandler是指向类OptionManager的成员函数的指针。

(const ABString& value)表示成员函数将类型ABString的值带入const引用。

bool表示成员函数将返回一个布尔类型。

typedef表示使用“* OptionHandler”可以创建许多函数指针,可以存储该函数的地址。例如:

OptionHandler fp[3];

fp[0], fp[1], fp[2]将存储语义与上述说明匹配的函数的地址。

答案 2 :(得分:4)

这是一个指向OptionManager成员函数的指针,它接受一个const ABString引用并返回一个bool

答案 3 :(得分:2)

它是指向成员函数的指针的typedef。请检查C++ FAQ