CC++中有关“ . ”、“ -> “、“ :”、“ :: ”的作用区分(未完成待续)

CC++中有关“ . ”、“ -> “、“ :”、“ :: ”的作用区分(未完成待续),第1张

​ “ . ”、“ -> "、“ :”、“ :: ”这四个符号在写程序的时候经常使用到,然而需要尤其注意的是前两个符号,在一些编译器(譬如VS2019)中,有时候混用这两个符号,编译器也会智能修改为正确的格式;这实在是便利却不利于我们掌握它正确用法的一件事,所以在这里简述一下这些符号的用法与区别。


” . “ 和 ” ->"

这两位是易混大头了,尤其是在有指针出现的时候,它们的共同点是:

两者都是二元 *** 作符,为 变量 . 成员变量->成员 (其中成员可以是变量或函数)

而他们的区别在于:

1、A.B 的A是一个结构体或类对象,“ . ”将取该变量的成员值B

2、A->B的左边变量是一个指针,“ -> " 将取该指针指向的变量的成员值B;注:这里A只能是指向类、结构、联合的指针


e.g.

    int   a;//定义一个对象;

​   int   *b;//定义类型指针;

​   a.Info();//调用成员函数;

​   b->Info();//调用函数;
“ :” 和 “::”

后面两个符号则容易些,这里的知识也和 JAVA 相关(笔者暂时没学JAVA,学到再来补充):
1、“ :”一般用来继承

2、“ ::”是作用域运算符,A::B表作用域中名称B,A可以是名称空间、类、结构;

e.g.

     std::cin;

​    M::f() //表示f()是类M里的成员函数;

​ 又或者声明类A,A中声明成员函数void f(),但没有在类的声明中给出 f() 的定义,则在类外定义f()时,要写成 :

void A::f() //表示f()是类A的成员函数;

​ 再或者表示引用成员函数及变量

e.g.

System::Math::Sqrt();
//相当于
System.Math.Sqrt();

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/607530.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-14
下一篇 2022-04-14

发表评论

登录后才能评论

评论列表(0条)

保存