1、类型增强
1.1 更严格的类型检查
在C语言中,const* ->non-const*,void* -> type* 是可以的,但在C++中会出现error。
1.2 逻辑类型bool
C语言中没有逻辑类型,用0表示逻辑真,非0表示逻辑假。
C++中有bool类型,即true和false。
1.3 真正的枚举
C语言中枚举元素类型本质是整型,枚举变量可以用任意整型赋值。
C++中枚举变量,只能用被枚举出来的元素赋值。
1.4 可被赋值的表达式
C语言中表达式通常不能作为左值,即不可被赋值。
C++中某些表达式是可以赋值的。
(a = b)= 10;
(a > b ? a : b) = 200;
这两个表达式在C语言中是编译不通过,C++中能编译通过。
2、标准输入与输出
cin和cout是C++的标准输入和输出流对象。
cout可以实现进制输出、域宽/对齐/填充、设置浮点数精度等输出。
cout<<"dec:"<<dec<<i<<endl;
cout<<setw(10)<<1234<<endl;
cout<<setw(10)<<setfill('0')<<1234<<endl;
cout<<setw(10)<<setfill('0')<<setiosflags(ios::left)<<1234<<endl;
cout<<setprecision(4)<<setiosflags(ios::fixed)<<1.2345<<endl;
3、函数重载
C语言中,不允许有函数同名不同参,编译不通过。
C++中允许函数同名不同参,即函数重载。
3.1 函数重载的规则
1. 函数名相同