欢迎来到天天文库
浏览记录
ID:42275103
大小:252.00 KB
页数:44页
时间:2019-09-11
《类与对象(c++)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章类与对象7.1类、对象及数据封装7.2构造函数、析构函数、成员函数、静态成员与友元教学目标:1掌握类及对象的概念、类与对象的关系、类与对象的差异2掌握构造函数、析构函数的作用及定义3了解静态成员、友元等概念。教学重点:(1)类和对象概念和定义;(2)构造函数和析构函数解析。教学难点:构造函数、析构函数第7章类与对象7.1类的定义7.1.1类的定义7.1.2类成员的访问控制7.1.3类的成员函数7.1.4对象7.1.1类的定义类的引入:类是一种由用户定义的复杂数据类型,它是将不同类型的数据及相关的操作封装在一起
2、的集合体.描述客观事物时,必须用不同的数据类型来描述事物各个不同的方面。如一种商品:商品名称(用字符串描述);该商品数量(用整型数描述),该商品单价(用浮点数描述),该商品总价(用浮点数描述)。这里用了属于三种不同数据类型的四个数据成员来描述一种商品。7.1.1类的定义类的定义的一般格式://说明部分class<类名>{public:<数据成员或成员涵数说明>protected:<数据成员或成员涵数说明>private:<数据成员或成员涵数说明>};//实现部分<各成员涵数的实现>7.1.1类的定义类的表述:cla
3、ssGoods{private:charname[21];intamount;floatprice,floattValue;public:setPrice(intp);};//最后的分号不可少,这是一条说明语句关键字class是数据类型说明符,指出下面说明的是类。标识符Goods是商品这个类的类型名。花括号中是构成类体的系列成员,关键字public是一种访问限定符。7.1.1类的定义类定义语法格式:class类名{《《private:》成员表1;》《public:成员表2;》《protected:成员表3;》};/
4、/注意:所有说明都以分号结束其中“class类名”称为类头。花括号中的部分称为类体,类体中定义了类成员表,包含数据和函数.7.1.1类的定义成员函数:classGoods{private:charname[21];intamount;floatprice;floattValue;public:voidregisterGoods(char[],int,float);//输入数据voidcountTotal(void);//计算商品总价值voidgetName(char[]);//读取商品名intgetAmount(v
5、oid);//读取商品数量floatgetPrice(void);//读取商品单价floatgetTvalue(void);};//读取商品总价值7.1.1类的定义封装:类把数据(事物的属性)和函数(事物的行为——操作)封装为一个整体。接口:通常数据成员被说明成私有的,函数成员被说明成公有的;从外部对数据成员进行操作,只能通过公有函数来完成,从而使数据受到了良好的保护,不易受副作用的影响。公有函数集定义了类的接口。成员函数可以直接访问类定义中的任一成员,可以处理数据成员,也可调用成员函数。注意:类是一种数据类型,定
6、义时系统不为类分配存储空间,所以不能对类的数据成员初始化。类中的任何数据成员也不能使用关键字extern、auto或register限定其存储类型。7.1.2类成员的访问控制访问限定符:public(公共的)说明的成员能从外部进行访问。private(私有的)和protected(保护的)说明的成员不能从外部进行访问。每种说明符可在类体中使用多次。访问限定符的作用域是从该说明符出现开始到下一个说明符之前或类体结束之前结束。如果在类体起始点无访问说明符,系统默认定义为私有(private)。访问限定符private、
7、protected体现了类具有封装性。7.1.3类的成员函数成员函数定义:成员涵数用来描述事物的行为.成员涵数的说明必须在类体中进行,但定义既可以在类体中进行,也可以在类体外进行.(1)通常在类定义中,成员函数仅作声明。函数定义通常在类的说明之后进行,其格式如下:返回值类型类名::函数名(参数表){……}//函数体其中运算符“::”称为作用域运算符,它指出该函数是属于哪一个类的成员函数。(2)另一种方式是对成员涵数进行说明后,紧接着进行成员涵数的定义.classGoods{private:charname[21];
8、intamount;floatprice,floattValue;public:floatgetPrice();floatgetTvalue();voidsetPrice(intp){price=p;}};floatGoods::getPrice(){return(Price);}floatGoods::getTvalue(){return(tValue);
此文档下载收益归作者所有