一個類型裏面宣告了雙小括號運算方法 operator ( )( ), 讓實例化後的物件具有函式的功能,可以用變數名稱附加雙小括號呼叫去執行. 看以下範例:
// functor.c
#include <stdio.h>
struct functor {
int operator ( ) (int op){ // 參數 op
return op * 3 ; // 回傳 3 倍
}
}; // 新類型宣告結束, 記得加分號
int main( ) {
functor A; // 實例化一個 functor, 變數是 A
printf( "%d\n", A(3) ) ; // A 呼叫運算方法 ( )
}
用 g++ functor.c && ./a.out 執行看
9
沒有留言:
張貼留言