欢迎来到天天文库
浏览记录
ID:49920437
大小:742.00 KB
页数:22页
时间:2020-03-04
《面向对象程序设计 C++ 高职软件专业 王明福 课件第5章 类与对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章类与对象本章要点通过本章的学习,使读者:◆了解并掌握类的概念和定义方法◆熟练掌握对象的定义和使用方法◆了解构造函数和析构函数的特点、功能,熟练掌握它们的定义和使用方法◆了解静态成员的特点,以及与类成员的区别5.1类5.1.1类的定义长方形类定义如下:classRect{private:floatx,y;//实型数据长和宽public:voidset(floata,floatb);//设置长和宽floatperi();//求周长函数floatarea();//求面积函数};类定义的一般形式为:cla
2、ss<类名>{private:<私有的数据成员和成员函数>protected:<保护的数据成员和成员函数>public:<公有的数据成员和成员函数>};class:定义类的关键字。<类名>:一种标识符。一对花括号内是类的说明部分,说明该类的成员;类的成员包含数据成员和成员函数两部分。5.1.2类的数据成员数据成员是类的一个重要组成部分。类的数据成员同结构struct中的数据是一致的,不仅定义的语法一样,使用的结构也一样。【例5-1】用struct和class分别建立学生基本信息的数据结构,包括姓名、年龄
3、、性别、身高等数据。classstudent2{public:charname[8];intage;charsex;intheight;};5.1.3类的成员函数成员函数实现对类中数据成员的操作。它描述了类的行为。1.成员函数的声明一般地,类的成员函数声明的结构如下:<类型><成员函数名>(<参数表>)2.成员函数的实现成员函数定义的结构如下:<类型><类名>::<成员函数名>(<参数表>){<函数体>}5.1.4类成员函数的存取权限成员函数的存取权限有3级:公有的(public)保护的(protect
4、ed)私有的(private)5.1.5成员函数重载类的成员函数同普通函数一样也可以进行重载(参考§3.6)。5.16成员函数缺省参数类的成员函数同普通函数一样也可以带缺省参数【例5-7】设计一个日期类,设置函数带默认参数classMyDate{private:intYear,Month,Day;public:SetDate(inty=2008,intm=1,intd=1);//带默认参数的成员函数voidDisplay();//成员函数};MyDate::SetDate(inty,intm,intd)
5、//成员函数的定义{Year=y;//设置年份Month=m;//设置月份Day=d;//设置日}voidMyDate::Display(){cout<<"日期为:";//显示"日期为:"cout<<对象名>;<对象名>.<
6、数据成员名>;或者<对象名>.<成员函数名>(<参数表>);5.3构造函数和析构函数5.3.1构造函数构造函数也是类的一成员函数,除了具有一般成员函数的特征之外,还有一些特殊的性质。构造函数的名称与类名称相同,而且不能有返回值类型,也不能标为void类型,甚至不能有return语句,一般声明成public类型。其语法结构为:<类名><对象名>(<构造函数的参数表>);5.3.2构造函数重载与默认参数跟普通函数一样,构造函数也可以重载。classCircle{doubler;public:Circle()
7、{r=0;}//不含参数的构造函数Circle(doublex){r=x;}//含有1个参数的构造函数/voidset(doublex){r=x;}doubleperi(){return(r*2*3.1416);}doublearea(){return(r*r*3.1416);}};构造函数重载5.3.3析构函数与构造函数相对应的是析构函数。在类中定义析构函数的方法是:class类名{……public:类名()//构造函数~类名()//析构函数……}//构造函数的实现<类名>::<类名>(){……}//
8、析构函数的实现<类名>::~<类名>(){……}析构函数的特点如下:①析构函数是特殊的成员函数,该函数的名字前为波浪号“~”后面跟着类名,该函数不能有任何返回类型,也不能有参数;②一个类只能有一个析构函数;③析构函数在对象生命期结束时被直接调用,程序中一般不要调用析构函数。5.4静态成员在类中,静态成员分为静态数据成员和静态成员函数。5.4.1静态数据成员静态数据成员的使用方法如下:(1)静态数据成员的定义格式为:<数据类型
此文档下载收益归作者所有