Re: [問題] 請問這印出的東西代表什麼??

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2009/06/18 09:15), 編輯推噓2(204)
留言6則, 2人參與, 最新討論串2/2 (看更多)
F大您好 您推文的連結我有不解的地方在於 class PTM { public: int iValue; static float fValue; }; float PTM::fValue=123.0f; int main() { int PTM::*piValue = &PTM::iValue; // OK: non-static float PTM::*pfValue = &PTM::fValue;; // C2440 error: static float *spfValue = &PTM::fValue; // OK system("PAUSE"); return 0; } float PTM::* 這是什麼函意 有特殊的名字說這種指標嘛? 這好像是我以前看到的pointer to member function http://caterpillar.onlyfun.net/Gossip/CppGossip/MemberFunctionPtr.html 不過又好像不是~~ 用途在哪裡呢 我印出piValue 就是我上篇印出的1..... 兩個一樣嗎?不是很了解..... 而這連結的重點是 &PTM::如果是static 就是回傳 *static變數型態 所以float PTM::* assign給這種指標就錯了? 另一個是說non-static的話&PTM::iValue 取address 是回傳PTM::* non-static變數型態 以上有解讀錯誤嘛 謝謝 也謝謝Z大 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187

06/18 17:38, , 1F
float PTM::*意思是指向PTM裡面的float變數的指標
06/18 17:38, 1F

06/18 17:38, , 2F
用法跟pointer to member function差不多
06/18 17:38, 2F

06/18 17:39, , 3F
名字.. 就叫pointer to member吧(汗)
06/18 17:39, 3F

06/18 19:12, , 4F
謝謝,大致瞭解了。還要搭配兩個運算子.*跟-> 而在C++ Primer
06/18 19:12, 4F

06/18 19:13, , 5F
的18.3 Pointer to Class Member有比較詳細的解釋。
06/18 19:13, 5F

06/18 19:13, , 6F
打錯,兩個運算子.*跟->*
06/18 19:13, 6F
文章代碼(AID): #1AEPKMT0 (C_and_CPP)
文章代碼(AID): #1AEPKMT0 (C_and_CPP)