欢迎来到天天文库
浏览记录
ID:50041124
大小:921.50 KB
页数:125页
时间:2020-03-08
《C++程序设计 教学课件 作者 张桦第6章 类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C++程序设计第6章类和对象6.1类和对象6.2类的声明和定义6.3构造函数和析构函数6.4隐含的this指针6.5静态成员6.6友元6.7运算符重载6.8复杂形式的对象6.9指向类成员的指针6.10对象的作用域和生存期6.11本章小结第6章类和对象6.1类和对象一些基本概念对象:对象是其自身所具有的状态特征及可以对这些状态施加的操作结合在一起所构成的独立实体。类:对一组客观事物(即对象)的抽象,它将该组对象所具有的共同特征(结构/属性特征和行为/功能特征)集中起来,以说明该组对象的能力和性质。封装与信息隐藏:就是把对象的属性和行为结合成一个独立的系统单位,并尽可能
2、地隐藏对象的一些内部实现细节。6.2类的声明与定义类的声明:指将一个类的类型名称告诉编译器,声明不带有细节信息,一般形式如下:class<类名>;//类的声明例如:classClock;//类的声明class<类名>{public:protected:private:};6.2类的声明与定义类的定义:指将类细节信息提供给编译器,类的定义必须列出类的所有成员,包括数据成员和函数成员。类的定义格式如下:6.2类的声明与定义图6-1类定义示意图6.2类
3、的声明与定义class是关键字,表示定义一个类;pubic/protected/private是类外代码存取访问权限控制关键字。数据成员,表示该类对象包含的数据,描述类对象的属性特征;成员函数,表示对数据成员进行操作或处理的过程,用函数形式来实现,描述类对象的行为特征;类的实现部分给出类成员函数的具体实现,可以放在类定义中,也可放在类定义外。格式如下:<函数类型><类名>::<成员函数名>(<参数表>){<函数体>}说明:【例6.1】定义日期(Tdate)类,该类对象可以代表普通的日期。注意:将日期(Tdate)类的定义部分和实现部分放在一起。6.2类的声明与定义/
4、/日期类的定义,类的定义与实现部分放在一起#includeusingnamespacestd;classTdate{public:voidsetDate(inty,intm,intd){year=y;month=m;day=d;}intisLeapYear(){return((year%4==0&&year%100!=0)
5、
6、(year%400==0));}voidprint(){cout<7、te)类,将日期(Tdate)类的定义和实现独立存放。6.2类的声明与定义//tdate.h//日期类的定义classTdate{public:voidsetDate(inty,intm,intd);intisLeapYear();voidprint();private:intyear,month,day;};//tdate.cpp//日期类的实现#include#include"tdateh"usingnamespacestd;voidTdate::setDate(inty,intm,intd){year=y;month=m;day=d;}in8、tTdate::isLeapYear(){return((year%4==0&&year%100!=0)9、10、(year%400==0));}voidTdate::print(){cout<11、,并扩展到类的所有成员函数体内。数据成员一般设为private访问权限const数据成员是类的内部常量,其值不能被更改。6.2.2类定义时的一些注意事项对于成员函数成员函数可以在类体内定义,也可在类体外定义,特别是大型的成员函数定义应放在类的外部,在类定义中只放函数原型声明。成员函数可以直接访问该类的类域中其它成员函数。成员函数可以访问和返回该类的任何数据成员,包括该类的private数据成员。成员函数可以有一个或多个参数,甚至没有参数,可以重载,但只能和该类的其它成员函数重载。一般地,将成员函数的访问权限设为public。6.2.2类定义时的一些注意事项cla
7、te)类,将日期(Tdate)类的定义和实现独立存放。6.2类的声明与定义//tdate.h//日期类的定义classTdate{public:voidsetDate(inty,intm,intd);intisLeapYear();voidprint();private:intyear,month,day;};//tdate.cpp//日期类的实现#include#include"tdateh"usingnamespacestd;voidTdate::setDate(inty,intm,intd){year=y;month=m;day=d;}in
8、tTdate::isLeapYear(){return((year%4==0&&year%100!=0)
9、
10、(year%400==0));}voidTdate::print(){cout<11、,并扩展到类的所有成员函数体内。数据成员一般设为private访问权限const数据成员是类的内部常量,其值不能被更改。6.2.2类定义时的一些注意事项对于成员函数成员函数可以在类体内定义,也可在类体外定义,特别是大型的成员函数定义应放在类的外部,在类定义中只放函数原型声明。成员函数可以直接访问该类的类域中其它成员函数。成员函数可以访问和返回该类的任何数据成员,包括该类的private数据成员。成员函数可以有一个或多个参数,甚至没有参数,可以重载,但只能和该类的其它成员函数重载。一般地,将成员函数的访问权限设为public。6.2.2类定义时的一些注意事项cla
11、,并扩展到类的所有成员函数体内。数据成员一般设为private访问权限const数据成员是类的内部常量,其值不能被更改。6.2.2类定义时的一些注意事项对于成员函数成员函数可以在类体内定义,也可在类体外定义,特别是大型的成员函数定义应放在类的外部,在类定义中只放函数原型声明。成员函数可以直接访问该类的类域中其它成员函数。成员函数可以访问和返回该类的任何数据成员,包括该类的private数据成员。成员函数可以有一个或多个参数,甚至没有参数,可以重载,但只能和该类的其它成员函数重载。一般地,将成员函数的访问权限设为public。6.2.2类定义时的一些注意事项cla
此文档下载收益归作者所有