C ++中的(*)语法是什么意思?

时间:2016-11-29 15:20:24

标签: c++ syntax

以下语法是什么意思?

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

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

5 个答案:

答案 0 :(得分:3)

这意味着第二个模板参数是一个函数指针:

bool (*) (element *, element *)

是“指向需要两个element*并返回bool”的函数的指针。

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

int (*) [32]

是“指向32 int s的数组的指针”。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

它是一个函数指针。你可以在这里进一步阅读,例如: http://www.cprogramming.com/tutorial/function-pointers.html

答案 3 :(得分:0)

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

答案 4 :(得分:0)

第二个模板参数是函数指针,用于比较2 element*。如果将这样的函数指针放在std :: set的构造函数中 - 您将能够使用自定义比较函数(或没有重载运算符&lt;)创建元素集。