`
fpwjp
  • 浏览: 45982 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

C++中作用域限定符

    博客分类:
  • C++
阅读更多

    在不同作用域内声明的变量可以同名,但如果局部变量和全局变量同名,在局部变量作用域内如何访问全局变量?C语言没有提供同名情况下访问全局变量的方法。在C++中,可以通过使用作用域限定符(::)(scope resolution operator)来区别同名的全局变量

    例2-27 在局部变量作用域内利用作用域限定符访问同名的全局变量

 

    #include <iostream.h>

   int amount=123;                           //输出全局变量  

   void main()

   {

         int amout=456;                       //局部变量

         cout <<::amout << ' ,';           //输出全局变量

         cout <<amout << ' ,';             //输出局部变量

         ::amout=789;

        cout <<::amout << ' ,';           //输出全局变量

        cout <<amout << '\n';            //输出局部变量

   }

  

   运行结果为:

   123,456,789,456

 

   注意:作用域限定符(::)只能用来访问全局变量,不能用于访问一个在语句块外声明的同名局部变量。下列代码是错误码的。

 

void  main()

{

int amount=123;

{

int amount=456;

::amout=789;

:

:

}

}

分享到:
评论

相关推荐

    C++ 中const 类型限定符不兼容问题

    在C++编程语言中,`const`类型限定符是一个非常重要的特性,用于声明变量、函数参数或成员函数不可变。然而,在实际编程过程中,我们可能会遇到`const`类型的不兼容问题,这通常涉及到对`const`修饰的成员函数的调用...

    C++开发入门学习介绍

    若要从外部访问这些实体,需要使用作用域限定符`::`或者`using`声明。 15.2.1 实体可见域 不使用作用域限定符或`using`声明,名称空间内的实体对外部是不可见的。只有通过显式指定作用域或使用`using`声明,才能在...

    C++学习课件之第二章 (C++ primier)

    C++中的作用域包括全局作用域、块作用域和嵌套作用域。全局作用域指的是整个程序范围内有效的区域,块作用域是在{}程序块内有效的区域,嵌套作用域是指内层作用域包含在某个外层作用域内。 例如,以下程序段展示了...

    C++中双冒号::的作用浅析

    •作用域限定符。在类体内申明函数,并在类体外定义函数时,必须在定义函数时加上类名和作用域限定符。 class MyClass{ public: int num; int fun();//类体内申明函数 }; //类体外定义函数 int MyClass::fun(){ ...

    C++初阶+类和对象(上).pdf

    本节课将介绍C++中的类和对象的概念,包括面向过程和面向对象的初步认识、类的引入、类的定义、类的访问限定符及封装、类的作用域、类的实例化、类对象模型、this指针等内容。 1. 面向过程和面向对象初步认识 ...

    C++基础教学

    9. 变量和作用域:C++中变量的声明可以包含作用域限定符,如类作用域、命名空间作用域和函数作用域等。文档中通过示例(例如,NS::Fileobj;)展示了如何在命名空间中声明和使用对象。 10. 链接属性:C++中的变量和...

    C++中的函数修饰符深入讲解

    当修饰非成员函数时,`static`限定函数的作用域仅限于当前源文件。 6. **外部(extern)**:`extern`关键字用于声明函数是在其他源文件中定义的,以便链接器可以找到它。 7. **显式(explicit)**:C++11引入,...

    奔腾题 2010年 题目详解.docx

    - 使用作用域限定符(::)可以显式地指定要访问的全局变量,而不是当前作用域内的同名变量。 - 不能使用作用域限定符访问在当前作用域之外声明的局部变量。 ### 七、动态联编与虚函数 **知识点:** - 动态联编是在...

    Effective C++ 中文第三版.pdf

    比如避免不必要的拷贝操作、合理使用const限定符以及缓存结果以减少重复计算等。遵循这些建议可以在不牺牲代码可读性的前提下显著提升程序运行效率。 #### 8. 命名空间与作用域 命名空间是C++为解决命名冲突问题而...

    C++面试常见问题

    静态局部变量在函数调用结束后仍然保持其值,而静态全局变量的作用域限定在定义它的源文件内。静态函数只能在声明它的模块内被调用。面试者往往对第一个作用理解较为透彻,但对后两个作用理解不够深入。 其次,引用...

    c++学习笔记精华版

    - **作用域限定符** `::`:使用 `名字空间名::成员名` 访问。 - 示例:`ns1::x = 100; ns1::func();` - **名字空间指令** `using namespace 名字空间名;` - 示例:`using namespace std;` 后可以直接使用 `std` 中...

    关于C/C++中typedef的定义与用法总结

    在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于...

    c++概念复习总结

    C++定义了几种基本数据类型,如int、char、float和double,以及它们的衍生类型,如const限定符或volatile限定符的类型。通过表达式可以将运算符和操作数组合起来生成新的数据值。 4. 控制结构 程序的执行流程通常由...

    跟我一起学C++

    `const`限定符用于定义只读常量,它可以给字面常量命名,常量定义时必须初始化,并且一旦初始化后,不能再次赋值。`const`常量在编译时分配内存,具有类型和作用域,而`#define`宏定义的常量在预编译时进行文本替换...

    C/C++兼容性程序设计必读

    - **C++中的行为**: 在C++中,默认情况下未限定的`const`变量被视为`static`类型,即它们的作用域仅限于定义它们的源文件。 示例代码如下: ```c const int g_maxUserAllow = 64; ``` 在C++中,此`const`变量的作用...

    30天精通C++学习C++的不二选择

    - **const限定符**的作用是定义常量或指定变量的某个部分为不可修改。这有助于提高代码的健壮性和可读性,减少潜在的错误。 ##### 4. C++下的引用类型 - **引用**: 引用类似于指针,但使用起来更简单。一旦定义了一...

    C++基础及其习题

    此外,无名命名空间也可以存在,其中的成员可以直接使用全局作用域访问。 C++中的类型检查非常严格,枚举(enum)在C++中是作为一种独立类型存在,不同于C语言中的整数类型。C++中调用函数时不会进行类型提升,而且...

    C++标准规范

    此外,标准中对多线程执行、数据竞争、标准转换、表达式解析、作用域、名字查找等进行了深入的规范,体现了C++语言的丰富特性和精确控制能力。 具体来说,文档结构方面提及了如下几个重要部分: 1. 作用域(Scope...

    C++ 14标准草案

    - **资格转换**:规定了类型之间如何进行资格转换,例如添加或删除const限定符。 - **整型提升**:说明了小整型如何自动提升为较大的整型。 - **浮点提升**:介绍了浮点数在运算过程中如何被提升为更高精度的数据...

Global site tag (gtag.js) - Google Analytics