C++面向对象程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 C++对C语言数据类型的扩展

C++语言的基本数据类型与C语言一致。也就是说,C++语言中的字符类型(char、signed char、unsigned char)、整型(int、short int、signed short int、unsigned short int、signed int、unsigned int、long int、signed long int、unsigned long int)、浮点型(float、double、long double)与C语言相同,可以在C++可以直接应用它们。

但C++对C语言的结构、联合、枚举等自定义数据类型进行了扩展,程序中定义的结构名、联合名、枚举名都是类型名,可以直接用于变量的声明或定义。即在C++语言中定义变量时,不必在结构名、联合名、枚举名前加上前缀struct、union、enum。此外,在结构和联合中还可以定义函数(其意义在第3章介绍)。例如,有下述类型声明:

enum color{black,white,red,blue,yellow};
struct student{
   char Name[6];
   int age;
   int getAge(){return age;}
};
union xy{
   int x;
   char y;
   int f(){return x+y;}
};

在C++语言程序中,可以用下面的形式定义相关类型的变量:

student s1;
xy x1;
color col;

但在C语言中,结构和联合中的函数是不允许的,且必须在相关变量的定义前面加上对应的关键字,形式如下:

struct student s1;
union xy x1;
enum color col;