C++快速入门 (三) 常量, 字面值常量 及作用域
2012-12-26 11:02
232 查看
一 常量
(1). 声明常量
C++ 使用关键字 coust 声明常量const 变量类型 变量名 = 变量值
如: const int x = 10;
(2). 声明和使用全局常量
使用关键字 extern const 来声明和使用全局常量classA.cpp
extern const int x = 101;
-----------------
main.cpp
[align=left]extern const int te;[/align]
[align=left]int _tmain(int argc, _TCHAR* argv[])[/align]
[align=left]{[/align]
[align=left] cout << te << endl; // return 101[/align]
[align=left]}[/align]
(3). 编译时才检查 const
C++是静态语言,既 使用前需要进行编译,只有编译通过了才能生成可执行的程序,而 const机制 其实也只是在编译时进行检查,如果发现代码中有对 声明为 const 的类型进行操作时,就会报错. 但编译并生成汇编代码后 const 和 非const 声明的类型 存储方式是一样,也可以被修改.二 字面值常量
(1). 并不陌生的字面值常量
顾名思义字面值常量就是书写时就已经确定其值并只能以其值称呼的常量,如 int i = 10 中 的 10,这里只需简单了解下,后边还会讨论三 作用域
(1). 什么是作用域
作用域是相对于某个对象来说的,既 对象可以访问的作用范围 就叫做作用域(2). 判断对象的作用域
通常情况下作用域是指 对象所处花括号内的范围, 出花括号时(出作用域) ,在该作用域中使用一般方式创建的变量或常量将被清除,如[align=left] if (true)[/align]
[align=left] {[/align]
[align=left] int x = 10;[/align]
[align=left] }[/align]
[align=left] const << x << endl; //error 变量x已经因为出作用域而被清除[/align]
(3). 嵌套作用域中存在同名变量时
在 C++中 一个作用域和在其内部的另一个作用域同时声明了同名变量时,内部作用域将使用该域声明的变量,而隐藏其上层作用域的同名变量。(Java中这种情况是不允许的,编译时会报错)[align=left] int i = 100, sum = 0;[/align]
[align=left] for (int i = 0; i != 10; i++)[/align]
[align=left] {[/align]
[align=left] cout << i << endl; // 外部作用域声明的 i =100 已经被隐藏[/align]
[align=left] sum += i;[/align]
[align=left] }[/align]
[align=left] cout << i << " | " << sum << endl; // return: 100 , 45[/align]
(4). 范围解析运算符::
范围解析运算符 用于引用 某个类型所包含的其他类型,既类型 :: 内部类型
当 范围解析运算符前部类型为空时,会指向全局
[align=left]#include <iostream>[/align]
[align=left]using namespace std;[/align]
[align=left]int ioz = 10086;[/align]
[align=left]int _tmain (int argc, _TCHAR* argv [])[/align]
[align=left]{[/align]
[align=left] {[/align]
[align=left] int ioz = 100;[/align]
[align=left] cout << ioz << endl; //100[/align]
[align=left] cout << ::ioz << endl; //10086[/align]
[align=left] }[/align]
[align=left]}[/align]
上例中定义了一个未命名作用域, 其作用和一般作用域相同,在一些代码库中会碰到这种写法,
(5). 文件作用域
在文件的最上层作用域 定义类型时使用 static 关键字声明,该类型 的作用域为文件作用域,既 只有当前文件内可以访问。-
<原创文章 转载请注明出处 http://blog.csdn.net/meiwm 谢谢>
作者:meiwm
出处:http://blog.csdn.net/meiwm
本文为原创,本文版权归作者所有。欢迎转载,但请务必保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
-
相关文章推荐
- 链接和作用域2 - C++快速入门43
- 链接和作用域2 - C++快速入门43
- 联合、枚举和类型别名 - C++快速入门13
- 从函数或方法返回内存 - C++快速入门35
- Visual C++ TinyXml快速入门(一)
- C++语音识别接口快速入门(Microsoft Speech SDK)——文字转语音
- 有章法的学习c++(6)字面值常量
- 高级强制类型转换 - C++快速入门37
- C++快速入门-简单概要
- 复杂的数据类型3 - C++快速入门09
- 函数模板 - C++快速入门44
- C++ 入门教程(七) auto、decltype、常量、类型后缀 和 const
- c++快速简易入门教程_002构造函数
- c++快速简易入门教程_007虚函数与多态性、纯虚函数
- 容器和算法2 - C++快速入门48(完)
- C++学习笔记之作用域为类的常量和作用域内的枚举
- 【算法笔记】第二章 C/C++快速入门
- C++快速入门 (九) 可变参数和链接库
- C++快速入门--9--继承
- C++快速入门 (十二) 操作符重载