看板 C_and_CPP 關於我們 聯絡資訊
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
Fenikso:float PTM::*意思是指向PTM裡面的float變數的指標 06/18 17:38
Fenikso:用法跟pointer to member function差不多 06/18 17:38
Fenikso:名字.. 就叫pointer to member吧(汗) 06/18 17:39
zlw:謝謝,大致瞭解了。還要搭配兩個運算子.*跟-> 而在C++ Primer 06/18 19:12
zlw:的18.3 Pointer to Class Member有比較詳細的解釋。 06/18 19:13
zlw:打錯,兩個運算子.*跟->* 06/18 19:13