11

の違いを知りたかっただけです。演算子と::演算子?

4

3 に答える 3

24

前者 (ドット、.) はオブジェクトのメンバーにアクセスするために使用され、後者 (二重コロン、::) は名前空間またはクラスのメンバーにアクセスするために使用されます。

次の設定を検討してください。

namespace ns {
    struct type
    {
        int var;
    };
}

この場合、名前空間のメンバーである構造体を参照するには、 を使用します::。タイプ のオブジェクトの変数にアクセスするにはtype、 を使用します.

ns::type obj;
obj.var = 1;
于 2010-05-24T10:42:31.963 に答える
3

4 ドット '::' のもう 1 つの考え方はscope resolution operator.、スコープ内に同じ名前のオブジェクトが複数ある場合です。どちらを使用するかを明示的に宣言します。

 std::min(item, item2);

また

mycustom::min(item, item2);

ドット演算子「.」オブジェクトインスタンスのメソッドと属性を呼び出すことです

Myobject myobject;
myobject.doWork();
myobject.count = 0;
// etc 

質問されませんでしたが、オブジェクト インスタンスが で動的に作成される場合に使用する別の演算子がありますnew。矢印演算子 '->' です。

Myobject myobject2 = new Myobject();
myobject2->doWork();
myobject2->count = 1;
于 2016-04-02T22:59:20.087 に答える
1

オブジェクト インスタンスへのポインターを使用している場合は、「ドット」の代わりに -> を使用してオブジェクトのメンバーにアクセスする必要があります。

于 2010-05-24T11:11:42.190 に答える