C++最重要的特征是类,程序员可以使用类自定义数据类型,C++有时候将这些类型称为“类类型”,以区别于内置类型。
类型作用:
1、告诉我们数据代表的是什么意思
2、对数据可以执行哪些操作
算数类型:整数、单个字符、布尔值(整型)和浮点数(浮点型)。C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间。(限制了最小的但没有限制最大的)
C++程序员通常把变量称为“变量”或者“对象”。
变量的类型作用:
1、决定了变量的内存大小和布局
2、能够存储与该内存中的值的取值范围以及在该变量上的操作集
左值和右值的区别:
左值就是变量的地址,或者一个代表“对象在内存中的位置”的表达式。
右值就是变量的值。
左值可以出现在赋值语句的左边或者右边,但右值只能出现在右边
1 int k =0; 2 int j = k;
k作为一个变量,可以出现在左边或者右边。变量是一个左值
变量的定义是为变量分配存储空间,还可以为变量指定初始值。
声明用于向程序表明变量的类型和名字,一般使用关键字extern来声明。
初始化:复制初始化和直接初始化
1 int k(1024); //复制初始化 2 int k = 1024; //直接初始化
对类类型来说,每个类会定义或者使用默认的构造函数来进行成员变量的初始化。
extern关键字是声名变量名而不是定义它,说明变量的定义在函数的其他地方,在程序中变量可以声明多次,但只能定义一次。
作用域:全局作用域、局部作用域和语句作用域。
1 #include<iostream> 2 int g_sum; //全局作用域 3 int main() 4 { 5 int sum =0; //局部作用域 6 for(int val =1;val != 112;val++) //val 语句作用域 7 sum += val; 8 std::cout << "Sum=“ <<sum <<std::endl; 9 return 0; 10 }
常量const 在定义时,必须给予初始化,并在以后不允许被修改。
在全局作用域中声明的const变量是定义该对象的文件局部变量,次变量只存在于那个文件中,不能被其他文件访问。要使const变量能够被其他文件访问,必须使用extern显示的指出来。eg:
1 text.cpp 2 const k= 100; //这个只能在text.cpp中访问 3 4 text2.cpp 5 extern const k =100; //这个可以被任意文件访问
typedefy 用来定义类型的同义词
枚举 enum ,默认第一个枚举成员的赋值为0,后面的内个成员都比前面的大1.
enum Point{
point1,point2,point3,point4
};
Point pt = point1;
Point ptd =pt;
枚举类型的对象初始化或者赋值,只能通过其枚举成员或者同一枚举类型的其他对象来进行。
类:
类定义了组成该类型的数据(成员变量)和操作(成员函数)。定义了类就相当于定义了一个新的类型,该类型的名字就是类名。
当利用这个类名定义一个对象时,则每个对象所占据的存储空间只与该对象数据成员所占据的存储空间有关系,与成员函数无关。
变量定义用于为变量分配存储空间,还可以为变量指定初始化的值,在一个程序中,变量有且只有一个定义。
定义变量和定义数据成员有非常重要的区别:一般不能把类成员的初始化作为其定义的一部分。当定义数据成员时,只能指定该数据成员的名字和类型。类不是在类定义里定义数据成员时初始化数据成员而是通过构造函数来初始化(成员列表或者构造函数体内进行赋值初始化)。
使用class与stuct定义类的区别仅仅是影响默认初始访问的级别,class默认访问的是pricate,stuct默认访问的是public。