【问题标题】:What does the (*) syntax in C++ mean?C++ 中的 (*) 语法是什么意思?
【发布时间】:2017-04-13 15:49:17
【问题描述】:

下面的语法是什么意思?

set<element*, bool (*) (element *, element *)> * getNumbers();

我不熟悉(*) 部分。任何解释都会很棒。谢谢

【问题讨论】:

标签: c++ syntax


【解决方案1】:

这是一个函数指针。您可以在此处进一步了解它,例如: http://www.cprogramming.com/tutorial/function-pointers.html

【讨论】:

    【解决方案2】:

    它是一个函数指针,更准确地说bool (*) (element *, element *)是一个函数指针的类型。在这种情况下,它是一个接受两个element 指针并返回一个bool 的函数。

    当你看到它被用作函数参数时它更有意义,那么它将在第一个* 之后有一个名称。例如bool (*fun) (element *, element *)

    【讨论】:

      【解决方案3】:

      bool (*) (element *, element *) 命名函数指针的类型,其中函数接受两个element* 指针作为参数并返回一个bool

      【讨论】:

        【解决方案4】:

        第二个模板参数是函数指针,旨在比较 2 个element*。如果您将此类函数指针放在 std::set 的构造函数中 - 您将能够使用自定义比较函数(或不使用重载 operator

        【讨论】:

          【解决方案5】:

          这里表示第二个模板参数是函数指针:

          bool (*) (element *, element *)
          

          是“指向一个函数的指针,该函数接受两个element*s 并返回bool”。

          您还可以看到(*) 与指向数组的指针有关;

          int (*) [32]
          

          是类型“指向 32 个ints 数组的指针”。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-22
            • 2018-05-12
            • 2013-11-02
            • 2011-08-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-11-13
            相关资源
            最近更新 更多