作者QQ29 (我愛阿蓉)
看板C_and_CPP
標題Re: [問題] 請問這印出的東西代表什麼??
時間Thu Jun 18 09:15:01 2009
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