[問題] typedef 的解析問題

看板C_and_CPP作者 (你說呢)時間9年前 (2014/08/31 23:07), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
class b_t{ public: int func_b (int b){return b;} }; class a_t{ public: typedef int (b_t::*b_func_t)(int); b_func_t a_func; }; 我有疑惑的是這一行 typedef int (b_t::*b_func_t)(int); 請問這意思是define一個function pointer, 它指到b_t的member funciton嗎? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.115.127 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1409497678.A.0CA.html

08/31 23:36, , 1F
typedef 是define一個type 下一行才是用這個type define
08/31 23:36, 1F

08/31 23:36, , 2F
一個pointer to member
08/31 23:36, 2F

09/01 07:56, , 3F
不過原 PO 的理解也滿接近了就是
09/01 07:56, 3F

09/01 07:57, , 4F
要看 typedef 的方法就是先不看 typedef 去認那是什麼宣告
09/01 07:57, 4F

09/01 07:57, , 5F
如果得到「某名字是某型態的變數」那這個 typedef 就是
09/01 07:57, 5F

09/01 07:58, , 6F
「定義這名字代表這個型態」的宣告
09/01 07:58, 6F

09/01 10:06, , 7F
謝謝樓上們!!
09/01 10:06, 7F
文章代碼(AID): #1K0pfE3A (C_and_CPP)