C++概念
C++最主要的就是:C++是面向对象的编程思想,而C是面向过程的编程思想。C++编写出来的效率比其他语言高的多。
C++思想:万物皆对象
C++语言的主要特点表现在两个方面,一是尽量兼容C,二是支持面向对象的方法。首先,C++的确是一个更好的C。它保持了C的简洁、高效和接近汇编语言等特点,对C的类型系统进行了改革和扩充,因此C++比C更安全,C++的编译系统能检查出更多的类型错误。
由于C++与C保持兼容,这就使许多C代码不经修改就可以为C++所用,用C编写的众多的库函数和实用软件可以用于C++中。另外,由于C语言已被广泛使用,因而极大地促进了C++的普及和面向对象技术的广泛应用。
然而,也正是由于对C的兼容使得C++不是一个纯正的面向对象的语言C++既支持面向过程的程序设计,又支持面向对象的程序设计。
C++语言最有意义的方面是支持面向对象的特征。虽然与C的兼容使得C++具有双重特点,但它在概念上是和C完全不同的语言,我们应该注意按照面向对象的思维方式去编写程序。
头文件
在C中,头文件一般为:
#include<xxx.h>
在换到C++中,我们将头文件改为:
#include<cxxx>
即可。
变量
1.变量的声明和定义与C相差不大,故不作太多介绍
2.变量的存储类型:
变量除了具有数据类型外,还具有存储类型。变量的存储类型决定了其存储方式,具体介绍如下。
auto存储类型:采用堆栈方式分配内存空间,属于暂时性存储,其存储空间可以被若干变量多次覆盖使用。并且自动推导,推导必须初始化!!!
int i;
auto int i;
eg:auto i = 1.23 + 8;
register存储类型:存放在通用寄存器中。(R0-R15),目的是提高速度。无法取址。
extern存储类型:在所有函数和程序段中都可引用。(外部声明)
static存储类型:在内存中是以固定地址存放的,在整个程序运行期间都有效。(只能自己.c用)
const关键字(字符常量)
符号常量在使用之前一定要首先声明,这一点与变量很相似。常量声明语句的形式为:
const 数据类型说明符 常量名=常量值;
或
数据类型说明符 const 常量名=常量值;
例如,可以声明一个代表圆周率的符号常量:
const float PI=3.1415926;
注意 符号常量在声明时一定要赋初值,而在**程序中间不能改变其值。**例如,下列语句是错误的:
const float PI;
PI=3.1415926;//错!常量不能被赋值
与直接使用文字常量相比,给常量起个有意义的名字有利于提高程序的可读性。而且如果程序中多处用到同一个文字常量(如圆周率3.14),当需要对该常量值进行修改时(例如改为3.1416),往往顾此失彼,引起不一致性。使用符号常量,由于只在声明时赋予初值,修改起来十分简单,因而可以避免因修改常量值带来的不一致性。
并且,不能使用非const修饰的指针指向const修饰的变量。
enum枚举
只要将变量的可取值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:
enum 枚举类型名 {变量值列表}
例如:
可以看到:
Week w = Fri;
前面其实省略了enum
结果:
说明:
枚举元素具有默认值,它们依次为:0,1,2,…。例如,上例中SUN的值为0,MON为1,TUE为2,…,SAT为6。
也可以在声明时另行定义枚举元素的值,如:
enum Weekday(SUN=7,MON=1,TUE,WED,THU,FRI,SAT};
定义SUN为7,MON为1,以后顺序加1,SAT为6。
枚举值可以进行关系运算。
整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。