- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 对象和类汇
第5章 对象和类 5.1 类及其实例化 5.2 类和对象的性质 5.3 结构和联合 5.4 构造函数 5.5 析构函数 5.6 综合例题 5.7 重载对象的赋值运算符 5.8 对象成员的初始化 5.9 类模板与标准模板库 5.10 面向对象编程的文件规范 实验 习题 本章重点介绍在C++中定义类、建立和使用对象的方法。虽然同类对象在其数据成员的取值方面是不相同的,但可以共用相同的代码。 类是对同类对象的描述,它不但描述了对象之间的公有接口,同时也给出了对象的内部实现(数据成员和成员函数)。 5.1 类及其实例化 5.1.1 定义类 像构造枚举和结构一样,类也是一种用户自己构造的数据类型并遵循C++的规定。 例如,类也要先声明后使用;不管声明的内容是否相同,声明同一个名字的两个类是错误的,类是具有惟一标识符的实体;在类中声明的任何成员不能使用extern、auto和register关键字进行修饰;类中声明的变量属于该类,在某些情况下,变量可以被该类的不同实例所共享。 类和其他数据类型不同的是,组成这种类型的不仅可以有数据,而且可以有对数据进行操作的函数,它们分别叫做类的数据成员和类的成员函数,而且不能在类声明中对数据成员使用表达式进行初始化。 1. 声明类 类是对一组性质相同对象的程序描述。在C++中声明类的一般形式为 class 类名 { private: 私有数据和函数 public: 公有数据和函数 protected: 保护数据和函数 }; 类声明以关键字class开始,其后跟类名。 类所声明的内容用花括号括起来,右花括号后的分号作为类声明语句的结束标志。这一对花括号“{}”之间的内容称为类体。 类中定义的数据和函数称为这个类的成员(数据成员和成员函数)。 类成员均具有一个属性,叫做访问权限,通过它前面的关键字来定义。顾名思义,关键字private 、public和protected 以后的成员的访问权限分别是私有、公有和保护的,把这些成员分别叫做私有成员、公有成员和保护成员。 访问权限用于控制对象的某个成员在程序中的可访问性,如果没有使用关键字,则所有成员默认声明为private权限。这些关键字的使用顺序和次数也都是任意的。 【例5.1】 描述点的Point类。 class Point { //类名Point private: //声明为私有访问权限 int x,y;//私有数据成员 public: //声明为公有访问权限 void Setxy(int a,int b);//无返回值的公有成员函数 void Move(int a,int b);//无返回值的公有成员函数 void Display();//无返回值的公有成员函数 int Getx(); //返回值为int的公有成员函数 int Gety(); //返回值为int的公有成员函数 }; //类声明以分号结束 x和y是私有成员,Setxy、Display、Move、Getx和Gety是公有成员。因为只是声明函数,所以可只给出函数原型。【例5.2】是其等效的声明方式。 【例5.2】 使用默认关键字及改变关键字顺序和次数的Point类。 class Point { //类名Point int x;//默认私有数据成员 public: //声明为公有访问权限 //无返回值的公有成员函数Setxy的函数原型 void Setxy(int,int); //无返回值的公有成员函数Move的函数原型 void Move(int,int); void Display();//无返回值的公有成员函数的函数原型 int Getx(); //返回值为int的公有成员函数的函数原型 int Gety(); //返回值为int的公有成员函数的函数原型 private: //声明为私有访问权限 int y;//私有数据成员 }; //类定义以分号结束 由此可见,成员函数声明的规则与第4章所述的函数声明规则相同。 2. 定义成员函数 类中说明的成员函数用来对数据成员进行操作。例如,Point类的Setxy函数用来为该类的对象设置初始
文档评论(0)