1.一切程序设计中最重要的两个概念就是变量和数据类型。面向对象程序设计中变量也叫对象包括:我们常说基本类型变量,自定义类类型变量,及它们的常量变量静态变量等,甚至包括字面常量,函数甚至也可以称之为变量(对于定义完的具体函数也会分配到自己的空间,有自己的类型,可以取其地址,所以函数也可以称之为对象,这体现了一切都是对象的思想,但一般我们说变量还是指前几种)。数据类型有基本数据类型,自定义数据类型,及对于他们的迭代类型(指针,数组)(注意类型修饰符&不能改变变量的类型,只是一个别名而已,和类型的别名typedef相似(不同之处在typedef的别名在编译时被自动解释,在名称列表中并不纯在,而引用在名称链表中确实存在,如在头文件引用中typedef可以重复定义想define一样,而引用如何在头文件中多次包含就会出现重定义,因为引用存在定义分配空间虽然是引用别的变量空间),引用是个复合类型,即当用引用定义变量时,需要借助其他类型关联)。
2.变量声明,定义,初始化,赋值
变量声明:变量名(即变量的标识符)列表长度加一(该列表是查找某个具体变量的入口地址列表,列表中存储实际变量的地址),但入口地址中并没有值,即该变量还没有分配内存空间。变量定义:变量名列表相应地址赋值(变量的地址),变量分配内存空间。
extern int i;//声明
int i;//声明,定义,并包含了默认初始化。通常我们只说定义。
int i = 0;//声明,定义,并包含的显式初始化。通常我们说定义并初始化。
i = 1;//赋值。
其中初始化和赋值是有很大区别的。赋值吊是调用的赋值运算符,不会调用拷贝构造函数,而初始化会调用拷贝构造函数。
如:
A a = b;等价于A a(b);而A a; a = b是不等价与A a(b);的。