C作用域运算符,如何使用linuxC

北京中科医院好不好 https://wapyyk.39.net/hospital/89ac7_comments.html

作用域运算符

在LinuxC课程中,我们学习了变量的定义和使用,每一个变量都有其有效的作用域和生命周期,那么,一个变量只能够在它的作用域内使用。

而且,当局部变量和全局变量同名的时候,在局部变量的作用域内使用同名变量,优先使用同名局部变量,如下是一个测试例子:

可以看到,在main()函数中定义了局部变量a,与全局变量a同名。那么,在main()中,使用a变量的时候,优先使用局部变量a。如果想输出全局变量a的值,有什么办法?

C++提供了作用域运算符“::”,它能指定所需要的作用域,如下:

所以,可以看到,“::a”表示全局作用域中的变量a,请注意,不能用“::”访问函数中的局部变量。

::作用域运算符为三种:全局作用域符,类作用域符,命名空间作用域符

(1)全局作用

全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:

  charnum;//全局变量

  voidfunc()

  {

  charnum;//局部变量

  num(局部变量)=num(局部变量)*num(局部变量);

  ::num(全局变量)=::num(全局变量)*num(局部变量);

  }

(2)类作用域符号

类作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为了避免不同的类有名称相同的成员而采用作用域的方式进行区分。

  例如A,B表示两个类,在A,B中都有成员member,那么

  A::member就表示类A中的成员member

  B::member就表示类B中的成员member

(3)命名空间

“::”是作用域限定符或者称作用域运算符或者作用域操作符(scopeoperator),例如命名空间。

“::”作用:namespace::name

::的另一种用法

直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,用此函数名默认调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。




转载请注明:http://www.aierlanlan.com/rzfs/4250.html

  • 上一篇文章:
  •   
  • 下一篇文章: