我只是想知道它们之间的区别。 operator和:: operator?
答案 0 :(得分:20)
前者(dot,.
)用于访问对象的成员,后者(双冒号,::
)用于访问命名空间或类的成员。
请考虑以下设置。
namespace ns {
struct type
{
int var;
};
}
在这种情况下,要引用作为命名空间成员的结构,请使用::
。要访问type
类型对象中的变量,请使用.
。
ns::type obj;
obj.var = 1;
答案 1 :(得分:2)
另一种思考四点的方法' ::'是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;
答案 2 :(得分:1)
如果您使用指向对象实例的指针,则必须使用 - >访问对象的成员。取代“点”