看板 C_and_CPP 關於我們 聯絡資訊
class D{ public: void Address(){cout<<&D::aa<<endl;} int aa; }; D d;d.Address();印出1... 我無意間忘了加上&()印出1 請問這個1是什麼意思阿? 還是沒有意義 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187
zlw:你認為你取什麼值?我認為沒有語意,你的 int aa;並不是static 06/18 04:08
zlw:除非有個static int s; 然後在全域定義 int D::s = 0; 後,你 06/18 04:09
zlw:存取D::s才是得到其值0。你存取&D::s才是得到其位址。你這只是 06/18 04:09
zlw:剛好編譯器這樣給吧?下中斷點就會發現IDE應該不會給你什麼值 06/18 04:10
zlw:補充一下,class的static data member是外部連結,跟非class的 06/18 04:12
zlw:static是相反。 06/18 04:12
zlw:http://tinyurl.com/lzgz2v 這篇提到的C++ class static與原本 06/18 04:15
zlw:C的static不同,就是在說這件事。 06/18 04:15
Fenikso:看第一個範例 06/18 04:26
zlw:英文不好,看不太懂,意思是對non static做address of就會傳回 06/18 04:55
zlw:int D::* 型態的指標?這種指標會在哪邊用到?謝謝 06/18 04:56