这些类型是什么?
问题描述:
我是通过作用于元组升压文档阅读和整个以下有效元组实例(A,B和C是一些用户定义的类)传来:这些类型是什么?
tuple<A, int(*)(char, int), B(A::*)(C&), C>
我不明白是什么类型的公司第二届和第三个参数。 int(*)(char, int)
和B(A::*)(C&)
类型究竟是什么?
答
int(*)(char, int)
是指向一个函数接受char
和int
作为参数并返回一个int
。
B(A::*)(C&)
是指向一个成员函数的对象A
上,返回B
并接受向C
参考作为参数。
+0
谢谢,我不知道第二个意思是什么。 +1 – 2012-02-09 13:04:52
答
int(*)(char, int)
是一个指针,它指向返回int
和花费char
和int
作为参数的函数。
答
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&)
答
int(*)(char, int)
功能指针(char, int)
并返回int
。
B(A::*)(C&)
一个指针,指向的A
服用C&
返回B
成员函数。
答
B(A::*)(C&)
是指向A
的成员函数,其参数为C
并返回B
对象。
陆先生已经回答了int(*)(char, int)
。
http://www.unixwiz.net/techtips/reading-cdecl.html这是C; C++增加了指向成员和模板的类型,但这个想法仍然存在。阅读(但要注意人们不会在生产代码中使用它,有'typedef'来简化这种声明)。 – Kos 2012-02-09 13:12:37