我已经开始使用C ++了很长一段时间没用过它。虽然大部分都有意义,但有些位我发现有点confuddling。例如,有人可以解释这一行的作用:
typedef bool (OptionManager::* OptionHandler)(const ABString& value);
答案 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。