我是通過作用於元組升壓文檔閱讀和整個以下有效元組實例(A,B和C是一些用戶定義的類)傳來:這些類型是什麼?
tuple<A, int(*)(char, int), B(A::*)(C&), C>
我不明白是什麼類型的公司第二屆和第三個參數。 int(*)(char, int)
和B(A::*)(C&)
類型究竟是什麼?
我是通過作用於元組升壓文檔閱讀和整個以下有效元組實例(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
參考作爲參數。
謝謝,我不知道第二個意思是什麼。 +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