这些类型是什么?

时间:2012-02-09 13:00:28

标签: c++

我正在阅读关于元组的boost文档,并遇到了以下有效的元组实例化(A,B和C是一些用户定义的类):

tuple<A, int(*)(char, int), B(A::*)(C&), C>

我无法理解第二和第三参数的类型。 int(*)(char, int)B(A::*)(C&)类型的具体内容是什么?

5 个答案:

答案 0 :(得分:7)

int(*)(char, int)

指向函数的指针,该函数接受charint作为参数并返回int

B(A::*)(C&)

指向A对象上的成员函数的指针,返回B并接受对C的引用作为参数。

答案 1 :(得分:2)

int(*)(char, int)是一个指向函数的指针,该函数返回int并以charint作为参数。

答案 2 :(得分:2)

int(*)(char, int)

指向功能(char, int)并返回int的指针。

B(A::*)(C&)

指向A的成员函数的指针,C&返回B

答案 3 :(得分:0)

B(A::*)(C&)

是一个指向成员函数的指针(A的成员),它接受C&并返回B

示例:

class B{
public:
/*empty class*/
};
class A{
public:
 B DoSomething( C& input){
 return B;
}

}
int main(){
auto G = &A::DoSomething;
}

G的类型为B(A::*)(C&)

答案 4 :(得分:0)

B(A::*)(C&)是指向A成员函数的指针,它使用C引用参数并返回B个对象。

Luchian已经回答int(*)(char, int)