【发布时间】:2011-02-23 04:31:06
【问题描述】:
我只是想知道 .运算符和 :: 运算符?
【问题讨论】:
标签: c++ scope-resolution
我只是想知道 .运算符和 :: 运算符?
【问题讨论】:
标签: c++ scope-resolution
考虑四点 '::' 的另一种方法是 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;
【讨论】:
如果您使用指向对象实例的指针,则必须使用 -> 代替“点”来访问对象的成员
【讨论】:
p->m 只是(*p).m 的语法糖;)
前者(点,.)用于访问对象的成员,后者(双冒号,::)用于访问命名空间或类的成员。
考虑以下设置。
namespace ns {
struct type
{
int var;
};
}
在这种情况下,要引用作为命名空间成员的结构,请使用::。要访问 type 类型的对象中的变量,请使用 .。
ns::type obj;
obj.var = 1;
【讨论】: