C++程序设计语言 学习笔记(1)
前3章略。。。。
第4章 类型和声明
1 类型:
C++基本类型: 用户自定义类型:
布尔型 bool 枚举类型 enum
字符型 char 其他:
整型 int 空类型 void
浮点型 double
2 类型的大小:
C++对象的大小是以char的大小的倍数来表示的,所以char大小就为一。一个对象的大小可用sizeof来得到。
3枚举:
一组由用户刻画的值,枚举是一种自定义类型,例:
enum key{asm,auto,break}
即表示key是一种类型,此种类型的类型的数据只能是asm,auto或reak。
默认情况下枚举符所赋的值从0开始依次递增,但我们可以通过指定来改变默认,例:
enum key{asm=2,auto,break}
此枚举表示0位,1位为空,2位为asm,3位为auto,4位为
break
3 枚举的范围:
① 若枚举中所有枚举符的值均非负,则此枚举表示范围为[0:2k-1];
② 若枚举中所有枚举符的值有负,则此枚举表示范围为[-2k:2k-1];
其中2k指包含了所有枚举符的值的最小的2的幂,即:
enum flag{x=1,y=2,z=4,e=8}
由于此枚举包含9个符值(0-8),则最小的包含了9的2的幂为16,即24,(23=8,没有包含9),所以枚举类型flag表示的范围为(0-15);
4 枚举型变量的赋值:
在对枚举型变量赋值时需要使用强制类型转换,例:
enum day{ sum,mon,tue}
day c
对c赋值时,应该使用如下语句:
c=mon ; 或
c=enum day(1); 或
c= (enum day) 1;
5 作用域:
当局部变量的名字遮蔽了全局变量的名字时,若要在函数体内使用全局变量则可用“::”去引用,例:
int x;
void f()
{
int x=1; //遮蔽全局的x
::x=2; //给全局的x赋值
x=2; //给局部的x赋值;
}
5 自动对象和静态对象:
自动对象:
在一个函数里声明的对象都会在其定义被遇到时建立,在它的名字离开作用域时被销毁;
静态对象:
在全局和名字空间作用域里的对象,以及在函数和类型声明为static类型的对象。这种对象只建立一次,它们就一直生存到程序的结束。
通过new和delete,我们可以控制对象的生存期。