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

考虑四点 '::' 的另一种方法是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 回答