C++笔记2--类型增强
声明:本文档由王桂林老师编写的C++课件,经整理而出。
类型检查更严格
比如,把一个 const 类型的指针赋给非 const 类型的指针。c 语言中可以通的过,但是在 c++中则编不过去。
int main()
{
const int a = 100;
int b = a;
const int *pa = &a;
int *pb = pa;
return 0;
}
布尔类型(bool)
c 语言的逻辑真假用 0 和非 0 来表示。而 c++中有了具体的类型。
int main()
{
bool flag = true;
if(flag != false)
{
printf("i know bool type now\n");
}
printf("bool size = %d\n",sizeof(bool));
return 0;
}
真正的枚举(enum)
c 语言中枚举本质就是整型,枚举变量可以用任意整型赋值。而 c++中枚举变量,只能用被枚举出来的元素初始化。
enum season {SPR,SUM,AUT,WIN};
int main()
{
enum season s = SPR;
s = 0;
return 0;
}
表达式的值可被赋值
c 语言中表达式通常不能作为左值的,即不可被赋值,c++中某些表达式是可以赋值的。
比如:
#include <iostream>
using namespace std;
int main(void)
{
int a,b = 5;
(a = b) = 10;
cout<<"a = "<<a<<" b = "<<b<<endl;
(a<b? a:b) = 200;
cout<<"a = "<<a<<" b = "<<b<<endl;
return 0;
}
运行结果:
[ABM_CBE]:/home/zhs/zhsapp/test$main
a = 10 b = 5
a = 10 b = 200
[ABM_CBE]:/home/zhs/zhsapp/test$