- 类(class)是一种数据类型,是一种用户定义的抽象的数据类型。
- 类是一种抽象的数据类型,它不占存储空间,不能容纳具体的数据,因此在类声明中不能给数据成员赋初值。
- 类代表了一批对象的共性和特征。
- 类是进行封装和数据隐藏的工具,它将数据与操作紧密地结合起来。
- 类是对象的抽象,对象是类的实例。
- C++保留C结构体这种数据类型,并对其功能进行了扩充,使结构体可以含有不同类型的数据,而且还可以含有函数。类与结构体的扩充形式非常相似。
- 类与结构体区别:在结构体中,如果对成员不作private 或public声明,系统将其默认为公有的( public ),外界可以任意的访问其中的数据成员和成员函数,它不具有信息隐蔽的特性;而在类的声明中,如果对其成员不作private 或public声明,系统将其默认为私有的( private ),外界不可以访问其中的数据成员和成员函数,它提供了默认的安全性。
- 一般来说,公有成员是类的对外接口,而私有成员是类的内部数据和内部实现,不希望外界访问。
一、结构体
结构体--------统一操作一个整体对象。
结构体类型的定义形式:
struct [结构体类型名]
{
数据类型 成员1;
数据类型 成员2;
···
数据类型 成员n;
};
说明:
(1) 在需要该结构体变量的地方,用“ struct 结构名 变量名 ”进行变量定义。若省略结构名,则只能在类型定义的同时定义结构体变量,在程序的其他地方无法使用该结构体定义变量。
结构体变量的定义:
1)先定义结构体类型,再定义结构体类型变量。
struct stu_rec{
char cno[8]; //学号
char cname[10]; //学生姓名
char csex; //性别
int iscore[4]; //四科考试成绩
};
struct stu_rec student1,student2; //定义结构体类型变量
通常,这样的结构体类型定义放在函数的外部,程序的开始部分或头文件中,变量的定义在函数中。
2)定义结构体类型的同时定义结构体类型变量。
struct date{
int iyear;
int imonth;
int iday;
}mydate1,mydate2;
在这种方式下,结构体类型定义通常在函数的外部,程序的开始部分。其后也可以使用1)的方式再定义其他结构体变量。
3)直接定义结构体类型变量。
struct
{
char cno[8];
char cname[10];
char csex;
float fb_salary,ff_salary,fp_salary; //基本工资、浮动工资、奖金
}person1,person2;
这种方式灵活性差,一般不用。
(2) 结构体类型中的成员类型可以是基本数据类型,也可以是其他数据类型。同一类型的成员可以在同一行定义,形式为:数据类型 成员名1,成员名2······
(3) 存储一串字符应将其定义为字符数组
(4) 结构体变量的成员引用
使用成员运算符“ . ”,引用的形式为:
<结构体类型变量名> . <成员名>
(5) 结构体类型变量的初始化
由于结构体类型变量可以汇集不同数据类型的成员,所以结构体类型变量的初始化必须在结构体类型变量的定义时进行。
例如: struct stu_info student = { “23333”, “xiao ming”, “f”, “20”,“computer science”}
(6) 指向结构体的指针
结构体变量所占内存单元的起始地址就是该变量的指针。
可以定义一个指针变量来指向该结构体变量,并通过该指针变量来引用结构体变量成员。
1)结构体指针的定义
struct 结构体类型名 *指针变量名
例1:
struct stu_info *q; //q为指针变量,指向结构体类型stu_info
例2:
struct stu_cj
{
char cno[8];
char cname[10];
float fscore[4];
}stud,*</