C++ . -> :: 符号含义与区别

.和->的区别

结构体

首先介绍一下C++中的结构。对于一个结构:

struct MyStruct
{
  int member_a;
};

如果有个变量MyStruct s,那么使用其中的成员元素时可以用:

s.member_a = 1;

如果采用指针方法访问,比如MyStruct * ps,那么同样的访问就必须使用如下形式:

(*ps).member_a = 1;

或者

ps->member_a = 1;

c++中当定义类对象是指针对象时候,就需要用到->指向类中的成员;当定义一般对象时候时就需要用到"."指向类中的成员。
例如:

class A
{  
    public play();
}

如果定义如下:

A *p则使用:p->play(); 左边是结构指针。
A p 则使用:p.paly(); 左边是结构变量。

总结:

  • 箭头(->):左边必须为指针;
  • 点号(.):左边必须为实体。

::的用法

双冒号 :: 操作符被称为域操作符(scope operator),含义和用法如下:

  1. 在类外部声明成员函数。void Point::Area(){};

  2. 调用全局函数;表示引用成员函数变量及作用域,作用域成员运算符 例:System::Math::Sqrt() 相当于System.Math.Sqrt()

  3. 调用类的静态方法: 如:CDisplay::display()

把域看作是一个可视窗口全局域的对象在它被定义的整个文件里,一直到文件末尾都是可见的。在一个函数内被定义的对象是局域的(local scope), 它只在定义其的函数体内可见。每个类维持一个域,在这个域之外 ,它的成员是不可见的。类域操作符告诉编译器后面的标识符可在该类的范围内被找到。


One more thing

更多关于人工智能、Python、C++、计算机等知识,欢迎访问我的个人博客进行交流, 点这里~~

展开阅读全文
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值