[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。

發表迴響