[C/C++] C/C++ 箭頭(->) 、點(.)、雙冒號(::) 用法
聲明:這篇文章的目的是作為自己的筆記,方便日後查看之用,如有侵犯,請立即告知!
原文網址:http://calamaryshop.blogspot.tw/2011/12/cc.html |
箭頭(->)與點(.)
1. in C++ Struct:
struct MyStruct { int member_a; };
如果有變數 MyStruct s,對其中成員的取用為:
MyStruct s; s.member_a = 1;
如果採用指標方法存取MyStruct * ps,相對的存取方式必須使用箭頭:
MyStruct * ps; ps->member_a = 1;
2. in C++ Class
class MyClass { public: int ca_var; int add(int a); };
當宣告為一般型態時 MyClass CA,就使用點(.)來存取Class中的成員:
MyClass CA; CA.add(0); // 左邊為 Class變數
當宣告為指標型態時 MyClass * CA,就使用箭頭(->)來存取Class中的成員:
MyClass * pCA; pCA->add(0); // 左邊為 Class指標雙冒號(::)
雙冒號(::)
雙冒號(::)只用在Class成員函式或Class成員變數中:
class MyClass { public: int ca_var; int add(int a); int add(int a, int b); };
在實作add()這個函式時必須這樣描述:
int MyClass::add(int a, int b) { return a + b; }
此外,雙冒號也常常使用在實作目前Class時,對目前Class內部變數元素進行表示:
int MyClass::add(int a) { return a + ::ca_var; }
用於表示目前Class的內部變數ca_var。