2010年9月10日 星期五

C++:箭號(->) 、雙冒號(::)、點(.) 之各自用法說明

  • 箭號(->)與點(.)

    • Used in C++ Struct
    struct MyStruct {
    int member_a;
    };
    

    如果有變數 MyStruct s,那麼對於其中成員的取用為:
    MyStruct s;
    s.member_a = 1;

    如果是採用指標方法存取,譬如 MyStruct * ps,那麼相對的存取方式必須使用箭號:
    MyStruct * ps;
    ps->member_a = 1;
    • Used 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。

    0 意見: