点运算符和范围解析运算符有什么区别

发布于 2024-09-03 02:30:22 字数 32 浏览 7 评论 0原文

我只是想知道 之间的区别。运算符和 :: 运算符?

I just wanted to know the difference between . operator and :: operator?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无言温柔 2024-09-10 02:30:22

前者(点,.)用于访问对象的成员,后者(双冒号,::)用于访问命名空间或类的成员。

考虑以下设置。

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

在本例中,要引用作为命名空间成员的结构,请使用 ::。要访问 type 类型的对象中的变量,请使用 .

ns::type obj;
obj.var = 1;

The former (dot, .) is used to access members of an object, the latter (double colon, ::) is used to access members of a namespace or a class.

Consider the following setup.

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

In this case, to refer to the structure, which is a member of a namespace, you use ::. To access the variable in an object of type type, you use ..

ns::type obj;
obj.var = 1;
仅一夜美梦 2024-09-10 02:30:22

考虑四点“::”的另一种方式是作用域解析运算符。适用于作用域中存在多个具有相同名称的对象的情况。您明确声明要使用哪一个:

 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;

Another way to think of the quad-dot '::' is the scope resolution operator. In cases where there are more than one object in scope that have the same name. You explicitly declare which one to use:

 std::min(item, item2);

or

mycustom::min(item, item2);

The dot operator '.' is to call methods and attributes of an object instance

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

It was not asked, but there is another operator to use if an object instance
is created dynamically with new, it is the arrow operator '->'

Myobject myobject2 = new Myobject();
myobject2->doWork();
myobject2->count = 1;
旧话新听 2024-09-10 02:30:22

如果您使用指向对象实例的指针,则必须使用 -> 访问该对象的成员。代替“点”

If you are using a pointer to an object instance, you'll have to access the members of the object using -> in place of "dot"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文