全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1055
推到 Plurk!
推到 Facebook!

取得類別成員的位址?

答題得分者是:aftcast
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-19 22:33:47 IP:114.32.xxx.xxx 訂閱
請問各位大大,我想要取得,類別成員的位址,請問如何寫?

TMemoryStream *mms= new TMemoryStream;

int *len=&mms->Size; =>此行會錯誤,要如何寫才正確?



編輯記錄
firewing 重新編輯於 2011-03-19 08:35:03, 註解 無‧
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-21 12:23:33 IP:210.64.xxx.xxx 訂閱
都沒人回我就簡單的講一下好了…


Size 是屬性(property),是bcb(delphi)特有的。它並非是「資料成員」也非「成員函式」。事實上當你叫用Size時,他是會去叫一個get這樣的"函式"來把真的資料成員給回傳出來…

如果說Size是自己的class中的一個資料成員,那無疑你的寫法應該是正確的。但可惜的是他並非是c 中標準的東西。

當然,也不了解你為何會想要知道那位址? 真正放size的那個資料成員一般都是在private裡面,你是無法直接得到的,這也是c 中 「物件導向」「封裝」的精神所在。所以最好別把它當 c 語言中的 struct 來看待它…想找到位址…

以上是個人的淺見,僅供參考。


===================引 用 firewing 文 章===================
請問各位大大,我想要取得,類別成員的位址,請問如何寫?

TMemoryStream *mms= new TMemoryStream;

int *len=&mms->Size; =>此行會錯誤,要如何寫才正確?



------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
firewing
一般會員


發表:23
回覆:47
積分:19
註冊:2002-12-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-03-22 21:14:49 IP:114.32.xxx.xxx 訂閱
謝謝 aftcast 的解釋,我了解了.
會這樣用是直接想用 MemoryStream 直接去接 char* ,length 想直接回傳到size,
不過無法如此用,只好再多加一個 int length 去接長度了.
===================引 用 aftcast 文 章===================
都沒人回我就簡單的講一下好了…


Size 是屬性(property),是bcb(delphi)特有的。它並非是「資料成員」也非「成員函式」。事實上當你叫用Size時,他是會去叫一個get這樣的"函式"來把真的資料成員給回傳出來…

如果說Size是自己的class中的一個資料成員,那無疑你的寫法應該是正確的。但可惜的是他並非是c 中標準的東西。

當然,也不了解你為何會想要知道那位址? 真正放size的那個資料成員一般都是在private裡面,你是無法直接得到的,這也是c 中 「物件導向」「封裝」的精神所在。所以最好別把它當 c 語言中的 struct 來看待它…想找到位址…

以上是個人的淺見,僅供參考。


===================引 用 firewing 文 章===================
請問各位大大,我想要取得,類別成員的位址,請問如何寫?

TMemoryStream *mms= new TMemoryStream;

int *len=&mms->Size; =>此行會錯誤,要如何寫才正確?



系統時間:2017-12-17 6:15:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!