C++对C的扩展
类型的增强
- 类型检查
上图:
- 布尔类型的优化
在C语言中没有布尔类型,逻辑真假通常用 0 和非 0 来表示,而在C++中这点得到了改进。
#include <stdio.h>
int main()
{
bool flag = true;
if(flag != false)
{
printf("i know bool type now\n");
}
return 0;
}
- 真正的枚举
c 语言中的枚举简单点说就是可以任意从枚列出来的整型赋值,枚举本质就是整型,枚举变量可以用任意整型赋值。但 c++中枚举变量,只能用被枚举出来的元素初始化。
#include <stdio.h>
enum number
{
One,Two,Three,Four //此处是没有逗号的
}
int main()
{
enum number s = 2;
/*D:\c++2\2016-one-renew-string\main.c:162: error:
expected ';', identifier or '(' before 'int'
int main()
^
编译器报错了,“初始化”:无法从“int” 转化为“season”
因为C语言中enum是整型数值
*/
enum number s =One;
//C++中的枚举只能用枚举的元素初始化<==>宏常量
return 0;
}
- 表达式的值可被赋值
c 语言中表达式通常不能作为左值的,即不可被赋值,但c++中某些表达式是可以赋值的