欢迎来到天天文库
浏览记录
ID:37950523
大小:727.31 KB
页数:143页
时间:2019-06-03
《类和对象及其封装性》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章类和对象及其封装性本章要点1类的定义及其类对象的封装性2类成员函数的定义3类对象的定义和使用4类的构造函数和析构函数5类对象的动态创建和释放6类对象的赋值与复制7与类对象有关的指针8类的静态成员9类对象成员、类对象数组和类对象参数10友元(友元函数、友元成员和友元类)11类的只读成员函数定义3.1类的定义及其类对象的封装性无论采用哪种程序设计范型所设计的程序都是由数据处理这些数据的操作组成的。程序的运行就是按照特定的结构和流程将操作施加在相应的数据上,完成程序需要实现的功能。在传统设计范型中,数据是使用语言所提供的简单数
2、据类型和构造数据类型(例如C语言中的结构类型struct)定义生成的;而操作是通过过程或函数的形式定义提供的。在面向对象设计范型中,使用了数据抽象的概念,即数据总是与允许施加它们的操作绑定在一起的。这就要求编程语言能够提供符合数据抽象的预定义数据类型,特别需要提供能构造符合数据抽象用户自定义类型的构造数据类型(例如C++和Java语言中的类类型class)。程序中的数据和操作都是由按数据抽象封装起来的对象提供的。3.1.1C++的类类型定义在C++中,用户可以使用类类型关键字class定义自己的抽象数据类型。这种定义方法和形式
3、与使用结构体类型关键字struct定义数据结构类型十分相似。例如,可以用struct定义描述学生基本信息的数据结构类型Student:structStudent{intnum;charname[20];charsex;};同样,可以用class定义描述学生基本信息和基本操作的数据类型Student:classStudent{intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<4、<<“sex:”<5、使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;在面向对象的程序设计中通常将所有的类型(包括系统预定义的简单数据类型)实体可以统一称为对象。例如,可使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;二者的不同之处表现在:⑴使用C语言的struct定义的结构类型的定义体中只包含数据成员,而使用c6、lass定义类类型的定义体中既包含数据成员,还包含了操作这些数据的成员函数。注意,在C++中,struct定义能力被扩展,也可以class定义一样包含操作数据成员的成员函数。⑵结构类型的成员的缺省访问权限均为公有,即可以从结构对象外直接访问。例如:Studentstud1;cout<<“num:”<7、不能从类外直接访问,而显示这些数据只能通过调用成员函数display实现。Studentstud1;cout<<“name:”<8、ivate:intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<
4、<<“sex:”<5、使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;在面向对象的程序设计中通常将所有的类型(包括系统预定义的简单数据类型)实体可以统一称为对象。例如,可使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;二者的不同之处表现在:⑴使用C语言的struct定义的结构类型的定义体中只包含数据成员,而使用c6、lass定义类类型的定义体中既包含数据成员,还包含了操作这些数据的成员函数。注意,在C++中,struct定义能力被扩展,也可以class定义一样包含操作数据成员的成员函数。⑵结构类型的成员的缺省访问权限均为公有,即可以从结构对象外直接访问。例如:Studentstud1;cout<<“num:”<7、不能从类外直接访问,而显示这些数据只能通过调用成员函数display实现。Studentstud1;cout<<“name:”<8、ivate:intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<
5、使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;在面向对象的程序设计中通常将所有的类型(包括系统预定义的简单数据类型)实体可以统一称为对象。例如,可使用自定义结构类型Student定义结构对象:Studentstud1,stud2;也可使用自定义类类型Student定义类对象:Studentstud1,stud2;二者的不同之处表现在:⑴使用C语言的struct定义的结构类型的定义体中只包含数据成员,而使用c
6、lass定义类类型的定义体中既包含数据成员,还包含了操作这些数据的成员函数。注意,在C++中,struct定义能力被扩展,也可以class定义一样包含操作数据成员的成员函数。⑵结构类型的成员的缺省访问权限均为公有,即可以从结构对象外直接访问。例如:Studentstud1;cout<<“num:”<7、不能从类外直接访问,而显示这些数据只能通过调用成员函数display实现。Studentstud1;cout<<“name:”<8、ivate:intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<
7、不能从类外直接访问,而显示这些数据只能通过调用成员函数display实现。Studentstud1;cout<<“name:”<8、ivate:intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<
8、ivate:intnum;charname[20];charsex;public:voiddisplay(){cout<<“num:”<
此文档下载收益归作者所有