欢迎来到天天文库
浏览记录
ID:51971989
大小:1.12 MB
页数:133页
时间:2020-03-26
《吴乃陵全套配套课件C程序设计第2版 第四章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章类与对象封装(Encapsulation)是面向对象程序设计最基本的特性,也就是把数据(属性)和函数(操作)合成一个整体,这是用类与对象实现的。本章重点:1.引入C++的类(class)和对象(object)的概念,建立“函数也可以是数据类型的成员”的思想。2.运算符重载。第四章类与对象4.1类与对象4.5运算符的重载4.4引用与复制构造函数4.2从面向过程到面向对象4.9名字空间域和类域(选读)4.10面向对象的程序设计和Windows编程4.8结构4.7静态成员4.6友元4.3构造函数和析构函数附录:用UML类图表达类间关系4.1类与对象4.1.3对象的创建
2、与使用4.1.1C++类的定义4.1.2成员函数的定义4.1.1C++类的定义类的引入:类是一种数据类型。描述客观事物必须用不同的数据类型来描述不同的方面。如商品:商品名称(用字符串描述),该商品数量(用整型数描述),该商品单价(用浮点数描述),该商品总价(用浮点数描述)。这里用了属于三种不同数据类型的四个数据成员(datamember)来描述一种商品。4.1.1C++类的定义类的表述:classCGoods{public:charName[21];intAmount;floatPrice;floatTotal_value;};//最后的分号不可少,这是一条说明语句关
3、键字class是数据类型说明符,指出下面说明的是类。标识符CGoods是商品这个类的类型名。花括号中是构成类体的系列成员,关键字public是一种访问限定符。4.1.1C++类的定义访问限定符(accessspecifier):public(公共的)说明的成员能从外部进行访问。private(私有的)和protected(保护的)说明的成员不能从外部进行访问。每种说明符可在类体中使用多次。访问限定符的作用域是从该说明符出现开始到下一个说明符之前或类体结束之前结束。如果在类体起始点无访问说明符,系统默认定义为私有(private)。访问限定符private(私有的)和p
4、rotected(保护的)体现了类具有封装性(Encapsulation)。4.1.1C++类的定义类的定义:class类名{《《private:》成员表1;》《public:成员表2;》《protected:成员表3;》};//注意:所有说明都以分号结束其中“class类名”称为类头(classhead)。花括号中的部分称为类体(classbody),类体中定义了类成员表(classmemberlist),包含数据和函数。4.1.1C++类的定义成员函数(memberfunction):classCGoods{private:charName[21];intAmou
5、nt;floatPrice;floatTotal_value;public:voidRegisterGoods(char[],int,float);//输入数据voidCountTotal(void);//计算商品总价值voidGetName(char[]);//读取商品名intGetAmount(void);//读取商品数量floatGetPrice(void);//读取商品单价floatGetTotal_value(void);};//读取商品总价值4.1.1C++类的定义封装:类把数据(事物的属性)和函数(事物的行为——操作)封装为一个整体。接口:通常数据成员被
6、说明成私有的,函数成员被说明成公有的;从外部对数据成员进行操作,只能通过公有函数来完成,数据受到了良好的保护,不易受副作用的影响。公有函数集定义了类的接口(interface)。成员函数可以直接使用类定义中的任一成员,可以处理数据成员,也可调用函数成员。注意:类是一种数据类型,定义时系统不为类分配存储空间,所以不能对类的数据成员初始化。类中的任何数据成员也不能使用关键字extern、auto或register限定其存储类型。4.1.2成员函数的定义函数定义:通常在类定义中,成员函数仅作声明。函数定义通常在类的说明之后进行,其格式如下:返回值类型类名::函数名(参数表)
7、{……}//函数体其中运算符“::”称为作用域解析运算符(scoperesolutionoperator),它指出该函数是属于哪一个类的成员函数。类CGoods的函数定义定义对象:对象是类的实例(instance)。定义一种数据类型只是告诉编译系统该数据类型的构造,并没有预定内存。类只是一个样板,以此样板可以在内存中开辟出同样结构的实例——对象。格式如下:CGoodsCar;这个定义创建了CGoods类的一个对象Car,同时为它分配了属于它自己的存储块,用来存放数据和对这些数据实施操作的成员函数(代码)。对象只在定义它的域中有效。4.1.3对象的创建
此文档下载收益归作者所有