c++基础知识之一:变量和基本类型

变量与基本类型

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关键字声明,以被多个文件共享


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值