代码之家  ›  专栏  ›  技术社区  ›  David Johnstone

有人能解释这个C++ Type吗?

  •  11
  • David Johnstone  · 技术社区  · 15 年前

    我刚开始用C++工作了很长一段时间。虽然大部分都很有意义,但我还是发现了一些地方 confuddling . 例如,有人能解释一下这行的作用吗?

    typedef bool (OptionManager::* OptionHandler)(const ABString& value);
    
    4 回复  |  直到 15 年前
        1
  •  26
  •   sth    15 年前

    它定义了类型 OptionHandler 作为指向类的成员函数的指针 OptionManager ,如果此成员函数接受类型为的参数 const ABString& 然后返回 bool .

        2
  •  9
  •   Michael Myers KitsuneYMG    15 年前
    typedef bool (OptionManager::* OptionHandler)(const ABString& value);
    

    让我们从以下内容开始:

    OptionManager::* OptionHandler
    

    这说明 ::* OptionHandler 是类的成员函数 OptionManager . 这个 * 在前面 OptionHandler 说是指针,意思是 选择处理程序 是指向类的成员函数的指针 选择管理器 .

    (const ABString& value) 表示成员函数将采用类型的值 ABString 变为常量引用。

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

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

    OptionHandler fp[3];
    

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

        3
  •  4
  •   rerun    15 年前

    这是一个指向OptionManager的成员函数的指针,该函数接受常量禁止引用并返回bool

        4
  •  2
  •   Andy    15 年前

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