->欄位指標 |
尚未結案
|
stone886
一般會員 ![]() ![]() 發表:32 回覆:15 積分:9 註冊:2003-09-13 發送簡訊給我 |
|
polongkon
一般會員 ![]() ![]() 發表:8 回覆:19 積分:5 註冊:2004-04-16 發送簡訊給我 |
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 發送簡訊給我 |
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) ); }提供參考。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |