抽象数据类型(ADT)
抽象数据类型(ADT)
一、抽象数据类型(ADT):一个人为规定的数据集合(数学模型+操作)
1、类型名称+数据+关系+操作
二、OOP(面向对象):基本类型+自定义类型+泛型(参数化的类型generic type类模板,函数模板)+元类型及元对象
三 、c++:
不同风格的枚举变量:
98:
enum A(x,y)
x,y为整型,在使用时不同的枚举类型名字可能冲突
11:用枚举类
enum class A(x,y)
x,y没有明确的数据类型,当作数据使用时需要进行强制类型转换
使用时需要带类名,解决了同名问题
整合:
实用类内的枚举,既解决了同名问题,又有固定的数据类型(int)
声明和定义:
extern关键字:带有外部连接属性,告诉编译器声明后面的部分的定义可能在下面,也可能在别的编译单元中
-
就近原则(现使用,现定义):尽量减小变量的作用域,
增加程序可读性,
减小内存栈的负担,减少程序占用内存的大小,加快变量检索速度
-
先声明(先告诉编译器),后使用(才认识)
-
单一定义:多声明,一定义,工程中也需要满足,在一个工程中包含头文件时头文件中定义的变量也不能同名
定义规则:结构体类的定义放在头文件里,变量定义在.cpp中
复制初始化(有一个中间量),初始化
定义的内部动作:编译器将变量放入内存栈中,并为其分配空间,分配的空间地址长度等信息放在堆中,故重复定义会引起同一变量名对应堆中不同空间从而不知道怎么用哪个
自动推导类型:auto
表达式
1、返回值
- 一般表达式:返回值为变量本身的值
- 逗号表达式:顺序执行(左结合 ),返回最左边表达式的值
- 连续赋值:右结合,返回最左边的表达式的值
2、左值表达式:能够放在=号左侧的表达式,有具体的物理空间存放它的值
右值表达式:不能放在=号左侧的表达式
static