c++基础知识之一:变量和基本类型
来源:互联网 发布:房子设计软件 编辑:程序博客网 时间:2024/04/30 04:05
变量与基本类型
1. 初始化
内置类型变量:定义在函数体外的初始成0,函数体内的不进行自动初始化
类类型变量: 如果定义某个类的变量时没有提供初始化式,它将通过 默认构造函数(default constructor)来实现
2. 声明与定义
extern int i; // declares but does not define i
int i; // declares and defines i
extern double pi = 3.1416; // declares and defines i
3. const 限定符
const 常量在定义时必须初始化
const 对象默认为文件的局部变量,要想其它文件访问,需加 extern修饰(这样设置默认情况的原因在于允许const变量 定义 在 头文件中):
file1: extern const int bufSize = fcn();
file2: extern const int bufSize; // uses bufSize from file1
4. 引用
引用必须与该引用同类型的对象初始化:
int ival = 1024;
int &refVal = ival; // ok: refVal refers to ival
引用只是对象的另一个名字,一经绑定,只要该引用存在,不能修改到其他对象
一个对象可以有多个引用,也可在一个类型定义行中定义多个引用:
int i =1024;
int j, &i1 = i, &i2 = i; //defines one object, and two references
const 引用是指向const对象的引用:
const int ival = 1024;
const int &refVal = ival; //ok: both reference and object are const8
int &ref2 = ival; //error:nonconst reference to a const object
const 引用与非const 引用:
const int &r = 1024;
const int &2 = r + r; //legal for const references only,beacuse:
double dval = 3.14; const int &ri = deal;
-->
int temp = dval; const int &ri = temp;
如果ri不是const,则可以给ri赋一新值,但不会修改dval的值,而是修改temp的值,为了完全避免这个问题,所以仅允许const引用可以绑定到不同但相关的类型的对象或绑定到右值。
5.typedef
dypedef double wages; wages val = 3.14;
typedef 定义以关键字typedef开始,后面是数据类型和标识符,标识符和类型名并没有引入新的类型,而只是现有数据类型的同义词,其设计目的有:
* 为了隐藏特定类型的实现,强调使用类型的目的;
* 简化复杂的类型定义,使其更易理解;
* 允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
6. enum 枚举
枚举定义了整数常量集,而且还把它们聚集成组
enum open_modes (input, output = 3, append); // input = 0, append = 4;
7. 类类型
每个类都定义了一个接口(interface)和一个实现(implementation)
用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员是public, 而class的成员是private
8. 头文件
头文件用于声明而不是定义
一些const对象定义在头文件中,但如果该const变量不是用常量表达式初始化,则需要到源文件中定义并初始化,并在头文件中用extern关键字声明,以被多个文件共享
- c++基础知识之一:变量和基本类型
- C++:基本类型和变量
- C++Primer 变量和基本类型
- c++Primer,二,变量和基本类型
- c++primer 要点-变量和基本类型
- 2.变量和基本类型(c++)
- C++Primer笔记--变量和基本类型
- [C++ 面试基础知识总结] 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 变量和基本类型
- 基本类型变量和类型变量+基础
- 二叉树的创建和各种遍历方法
- Redhat5下安装ORACLE10.2.0.1时,图形界面出不来,报错:
- strust中Action类和ActionForm类的基本用法
- ArcSDE空间数据库连接方式
- 浏览器了解(二)HTML解析过程
- c++基础知识之一:变量和基本类型
- 浏览器了解(三)CSS解析
- 浏览器了解(四)javascript解析
- 浏览器了解(一)浏览器大概流程
- USB2.0走线要点
- qwtplot3d 学习笔记 1
- 多靠点谱,少靠点言
- 浏览器了解(五)资源加载顺序
- jQuery实现淡入淡出的可展开级联菜单