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

->欄位指標

尚未結案
stone886
一般會員


發表:32
回覆:15
積分:9
註冊:2003-09-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-25 15:42:29 IP:218.175.xxx.xxx 未訂閱
請問->欄位指標,的意思用法,和只有一點 . 如x.y 有什麼不一樣呢
polongkon
一般會員


發表:8
回覆:19
積分:5
註冊:2004-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-25 17:04:09 IP:210.61.xxx.xxx 未訂閱
stone886 您好: dot(.)運算子和arrow(->)運算子都是用來操作(取用)class或struct的member functins的操作元,其差異只是在於該物件(class或struct)在宣告時是以有效率指標或一般型態宣告,例 class myClass { func() .... }; 宣告時的差異: myClass *ptrClass; myClass namedClass; 呼叫類別函數時方法就有所不同: ptrClass->func(); 或 namedClass.func();
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-25 21:42:49 IP:211.76.xxx.xxx 未訂閱
stone886 您好:    大家好!插個花。    的確dot(.)運算子和arrow(->)運算子都是用來存取class與structure的資料成員或成員函式。 ".":是物件(object,個人比較喜歡稱其為個體)存取其成員的寫法; "->":是C/C++所提供,方便指標變數存取其所指物件成員的簡寫方法。 在C++中class與struct幾乎是等同的,唯一的差別是:class成員內定是private;struct成員內定是public。 例如:  
class MyClass
{ public:
    int x;
    int y;
    void show() {};
};
struct MyStructure
{ int x;
  int y;
  void show() {};
};    void __fastcall TForm1::Button1Click(TObject *Sender)
{
  MyClass     mc, *pmc;
  MyStructure ms, *pms;      mc.x = 10;      // 直接設定成員的值。
  pmc = &mc;      // pmc指向物件變數mc的位址。
  //*pmc.x = 20;  // Error!!  "."的運算優先順序高於"*"。
  (*pmc).x = 20;  // 在此運算後, mc.x = 20;注意()不能少!
  pmc->x = 20;    // 全等於上面的寫法,簡單明瞭。
  ShowMessage( IntToStr(mc.x) );
}
 
提供參考。
系統時間:2024-07-04 1:56:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!