资源描述:
《类和对象(一)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第7章 类和对象(一)7.1类的定义7.2对象的定义7.3对象的初始化7.4成员函数的特性7.5静态成员7.6友元7.7对象的生存期7.1类的定义类是通过抽象数据类型的方法来实现的一种数据类型;类是面向对象程序设计的核心;类是对某一类对象的抽象,对象是某一种类的实例;类是C++实现抽象数据类型的工具;7.1.1什么是类类是一种复杂数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体;类具有更高的抽象性,类中的数据具有隐藏性;7.1.2类的定义格式说明部分:说明该类中的成员,包含数据成员的说明和成员函数的说明;实
2、现部分:对成员函数的定义;1、类定义格式的构成2、类的一般定义格式class<类名>{public:<成员函数或数据成员的说明>private:<数据成员或成员函数的说明>};<各个成员函数的实现>访问权限类定义关键字说明部分实现部分语句结束符7.1.2类的定义格式(续)访问权限修饰符:公有的(public)、私有的(private)和保护的(protected);访问权限修饰符出现的先后次序无关,并且允许多次出现;3、类定义的说明缺省访问权限为私有的;公有部分:一些操作(即成员函数),是提供给用户的接口功能;私有部分:一些数据
3、成员,通常用来描述该类中的对象的属性;7.1.2类的定义格式(续)4、示例(tdate.h)classTDate{public:voidSetDate(inty,intm,intd);intIsLeapYear();voidPrint();private:intyear,month,day;};voidTDate::SetDate(inty,intm,intd){year=y;month=m;成员函数定义作用域运算符7.1.2类的定义格式(续)day=d;}intTDate::IsLeapYear(){return(year%4
4、==0&&year%100!=0)
5、
6、(year%400==0)}voidTDate::Print(){cout<::<函数名>(<参数表>)7.1.3定义类时的注意事项在类体中不允许对所定义的数据成员进行初始化;classTDate{public:…...private:intyear(1998),month(4),day(9);};错误类中的数据成员的类型可以是任意的;
7、包含整型、浮点型、字符型、数组、指针和引用等;另一个类的对象,可以作该类的成员;自身类的对象不可以作该类的成员;7.1.3定义类时的注意事项(续)classN;classM{public:…...private:N*n;};classN{public:voidf(Mm);……};提前说明类N自身类的指针或引用,可以作该类的成员;当另一个类的对象作为该类的成员时,如果另一个类的定义在后,需要提前说明;一般在类体内先说明用户感兴趣的公有成员,再说明私有成员;习惯将类定义的说明部分或者整个定义部分(包含实现部分)放到一个头文件中;n是
8、N类的对象m是M类的对象7.2.1对象的定义格式例如:TDatedate1,date2,*Pdate,date[31];<类名><对象名表>;对象的定义格式。7.2.2对象成员的表示方法1、一般对象数据成员:<对象名>.<成员名>成员函数:<对象名>.<成员名>(<参数表>).运算符:表示对象的成员例如:date1.year,date1.month,date1.day;date1.SetDate(1998,4,9);2、指针对象数据成员:<对象名>-><成员名>成员函数:<对象名>-><成员名>(<参数表>)->运算符:表示对象
9、的成员例如:Pdate->year,Pdate->SetDate(1998,4,9);7.2.2对象成员的表示方法(续)->运算符与.运算符的区别->表示指向对象的指针的成员;.表示一般对象的成员;两种等价表示<对象指针名>-><成员名>(*<对象指针名>).<成员名>3、引用对象inta;int&b=a;与一般对象相同;7.2.2对象成员的表示方法(续)#include#include"tdate.h"voidmain(){TDatedate1,date2;date1.SetDate(1996,5,4)
10、;date2.SetDate(1998,4,9);intleap=date1.IsLeapYear();cout<