- 浏览: 45981 次
- 性别:
- 来自: 河北
最新评论
在不同作用域内声明的变量可以同名,但如果局部变量和全局变量同名,在局部变量作用域内如何访问全局变量?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;
:
:
}
}
发表评论
-
MFC的打印
2009-05-24 17:05 0虽然Windows通过 ... -
ActiveX控件
2009-05-23 15:49 6715ActiveX是Microsoft提出的使用组件对 ... -
多线程
2009-05-22 18:57 0Windows对CPU的管理的采取时间片分配的方式 ... -
动态链接库DLL
2009-05-22 14:38 0为了提高系统 ... -
异常处理
2009-05-21 19:06 2123异常(exception)是指在程序运行过程中发生 ... -
MFC ODBC数据库类
2009-05-20 19:44 74941.ODBC概述 ... -
对话框高级编程---公共控件之四(树视控件)
2009-05-19 21:45 2377树视(tree view)控 ... -
对话框高级编程---公共控件之四(列表视控件)
2009-05-19 14:01 0列表视(list view)控件也称列表控件,属 ... -
对话框高级编程---公共控件之三(图像列表)
2009-05-18 21:22 0图像列表(image list)是一个由一些大小相同 ... -
对话框高级编程---公共控件之二(标签控件和属性表)
2009-05-18 20:33 35581.标签控件 标签(tab)控件也 ... -
对话框高级编程---公共控件之一(旋转按钮、滑块和进度条)
2009-05-18 11:09 01.旋转按钮 ... -
对话框高级编程---通用对话框
2009-05-17 21:17 18221.通用对话框概 ... -
对话框高级编程---非模态对话框
2009-05-16 21:39 0尽管不同对话 ... -
图形处理---位图、图标和光标
2009-05-16 20:33 22121.位图 例1 编写一个应用程序MyB ... -
图形处理---位图,图标和光标
2009-05-16 20:16 01.位图 例1 编写一个应用程序MyBMP ... -
图形处理---位图、图标和光标
2009-05-16 19:58 01.位图 例1 编写一个应用程序MyBMP ... -
文本与字体
2009-05-16 16:23 01.绘制文本 以图形方式进行文本的输 ... -
图形处理---基本几何图形的绘制
2009-05-15 21:27 0获取设备环境、设置绘图属性和选择GDI绘图对象后,就 ... -
图形处理---画笔和画刷
2009-05-15 17:30 0进行绘图除了需 ... -
图形处理---颜色的设置
2009-05-15 16:08 0在绘制图形时,颜色是一个需要考虑的因素。Window ...
相关推荐
在C++编程语言中,`const`类型限定符是一个非常重要的特性,用于声明变量、函数参数或成员函数不可变。然而,在实际编程过程中,我们可能会遇到`const`类型的不兼容问题,这通常涉及到对`const`修饰的成员函数的调用...
若要从外部访问这些实体,需要使用作用域限定符`::`或者`using`声明。 15.2.1 实体可见域 不使用作用域限定符或`using`声明,名称空间内的实体对外部是不可见的。只有通过显式指定作用域或使用`using`声明,才能在...
C++中的作用域包括全局作用域、块作用域和嵌套作用域。全局作用域指的是整个程序范围内有效的区域,块作用域是在{}程序块内有效的区域,嵌套作用域是指内层作用域包含在某个外层作用域内。 例如,以下程序段展示了...
•作用域限定符。在类体内申明函数,并在类体外定义函数时,必须在定义函数时加上类名和作用域限定符。 class MyClass{ public: int num; int fun();//类体内申明函数 }; //类体外定义函数 int MyClass::fun(){ ...
本节课将介绍C++中的类和对象的概念,包括面向过程和面向对象的初步认识、类的引入、类的定义、类的访问限定符及封装、类的作用域、类的实例化、类对象模型、this指针等内容。 1. 面向过程和面向对象初步认识 ...
9. 变量和作用域:C++中变量的声明可以包含作用域限定符,如类作用域、命名空间作用域和函数作用域等。文档中通过示例(例如,NS::Fileobj;)展示了如何在命名空间中声明和使用对象。 10. 链接属性:C++中的变量和...
当修饰非成员函数时,`static`限定函数的作用域仅限于当前源文件。 6. **外部(extern)**:`extern`关键字用于声明函数是在其他源文件中定义的,以便链接器可以找到它。 7. **显式(explicit)**:C++11引入,...
- 使用作用域限定符(::)可以显式地指定要访问的全局变量,而不是当前作用域内的同名变量。 - 不能使用作用域限定符访问在当前作用域之外声明的局部变量。 ### 七、动态联编与虚函数 **知识点:** - 动态联编是在...
比如避免不必要的拷贝操作、合理使用const限定符以及缓存结果以减少重复计算等。遵循这些建议可以在不牺牲代码可读性的前提下显著提升程序运行效率。 #### 8. 命名空间与作用域 命名空间是C++为解决命名冲突问题而...
静态局部变量在函数调用结束后仍然保持其值,而静态全局变量的作用域限定在定义它的源文件内。静态函数只能在声明它的模块内被调用。面试者往往对第一个作用理解较为透彻,但对后两个作用理解不够深入。 其次,引用...
- **作用域限定符** `::`:使用 `名字空间名::成员名` 访问。 - 示例:`ns1::x = 100; ns1::func();` - **名字空间指令** `using namespace 名字空间名;` - 示例:`using namespace std;` 后可以直接使用 `std` 中...
在C还是C++代码中,typedef都使用的很多,在C代码中尤其是多。typedef与#define有些相似,其实是不同的,特别是在一些复杂的用法上,看了网上一些C/C++的学习者的博客,其中有一篇关于typedef的总结还是很不错,由于...
C++定义了几种基本数据类型,如int、char、float和double,以及它们的衍生类型,如const限定符或volatile限定符的类型。通过表达式可以将运算符和操作数组合起来生成新的数据值。 4. 控制结构 程序的执行流程通常由...
`const`限定符用于定义只读常量,它可以给字面常量命名,常量定义时必须初始化,并且一旦初始化后,不能再次赋值。`const`常量在编译时分配内存,具有类型和作用域,而`#define`宏定义的常量在预编译时进行文本替换...
- **C++中的行为**: 在C++中,默认情况下未限定的`const`变量被视为`static`类型,即它们的作用域仅限于定义它们的源文件。 示例代码如下: ```c const int g_maxUserAllow = 64; ``` 在C++中,此`const`变量的作用...
- **const限定符**的作用是定义常量或指定变量的某个部分为不可修改。这有助于提高代码的健壮性和可读性,减少潜在的错误。 ##### 4. C++下的引用类型 - **引用**: 引用类似于指针,但使用起来更简单。一旦定义了一...
此外,无名命名空间也可以存在,其中的成员可以直接使用全局作用域访问。 C++中的类型检查非常严格,枚举(enum)在C++中是作为一种独立类型存在,不同于C语言中的整数类型。C++中调用函数时不会进行类型提升,而且...
此外,标准中对多线程执行、数据竞争、标准转换、表达式解析、作用域、名字查找等进行了深入的规范,体现了C++语言的丰富特性和精确控制能力。 具体来说,文档结构方面提及了如下几个重要部分: 1. 作用域(Scope...
- **资格转换**:规定了类型之间如何进行资格转换,例如添加或删除const限定符。 - **整型提升**:说明了小整型如何自动提升为较大的整型。 - **浮点提升**:介绍了浮点数在运算过程中如何被提升为更高精度的数据...