C++复习2----类和对象.ppt

C++复习2----类和对象.ppt

ID:62737061

大小:176.50 KB

页数:24页

时间:2021-05-20

C++复习2----类和对象.ppt_第1页
C++复习2----类和对象.ppt_第2页
C++复习2----类和对象.ppt_第3页
C++复习2----类和对象.ppt_第4页
C++复习2----类和对象.ppt_第5页
资源描述:

《C++复习2----类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C++复习2----类与对象定义类与对象类的一般定义形式为:class类名{访问属性:数据成员与成员函数的说明或实现};数据成员的定义数据成员类型1:数据成员列表;数据成员类型2:数据成员列表;...成员函数的定义成员函数的定义由说明和实现两部分。说明是将成员函数在类体内声明,实现是在类体内或类体外完成成员函数的定义。在类体内定义与普通函数定义类似。类体外定义的格式为:函数类型类名::成员函数(<参数列表>){<函数体>;};数据成员及函数成员的属性public----公有访问属性private--

2、--私有访问属性protected----保护访问属性其中数据成员的属性默认为private成员函数在类体内定义,不需声明(见例题1)classTdate{private://数据成员:year,month,dayintyear;intmonth;intday;public://成员函数print()在类体内定义,不需声明voidprint()//类体内定义成员函数print(){printf("%d-%d-%d",year,month,day);}};成员函数在类体外定义,需要在类中声明(见例

3、题2)classTdate{private://数据成员:year,month,dayintyear;intmonth;intday;public://成员函数print()在类体内声明voidprint();};voidTdate::print()//类体外定义成员函数print(){printf("%d-%d-%d",year,month,day);}如何定义对象类相当于一种特殊的数据类型,对象相当于一种特殊的变量。类是对象的模板,对象是实例化后的类。类的使用通过对象来实现。对象的定义形式有

4、两种方式:方式1:类名对象名列表方式2:class类名{...}对象名列表;对象的引用对数据成员的引用:<对象名>.数据成员名对成员函数的引用:<对象名>.成员函数名<参数列表>其中的点号.称为成员引用符,指示对象的成员。<对象名>也可以用指向对象的指针替代,访问格式为:<指向对象的指针>->数据成员<指向对象的指针>->成员函数名(参数列表)voidmain(){Tdateada,*p;//定义对象和指针,类实例化p=&ada;//从对象获取指向对象的指针ada.print();//使用对象if(

5、p->isLeapYear())//使用对象printf("isLeapYear.");}对象的初始化----构造函数面向对象程序中声明一个类对象时,编译程序为对象分配存储空间,进行初始化,在C++中,这部分工作由构造函数完成。构造函数是特殊成员函数,名字与类名同名。当声明一个对象时,程序会自动调用对应类的构造函数,进行对象的初始化。构造函数见例题3classTdate{private://定义数据成员intyear;intmonth;intday;public:Tdate()//无参数构造函数,构

6、造函数与类同名{year=1000;month=1;day=1;}Tdate(inty,intm,intd)//有参数构造函数,构造函数与类同名{year=y;month=m;day=d;}voidprint()//类体内定义成员函数print(){printf("%d-%d-%d",year,month,day);}};voidmain(){Tdated1,d2(2000,2,2);//定义两个对象,d1和d2d1.print();//使用对象d1无参数d2.print();//使用对象d2有

7、参数}析构函数析构函数是一种特殊的类成员函数,在类对象生命周期结束时由系统自动调用,执行与构造函数相反的操作,一些清理任务,如释放存储空间等。析构函数的定义:类名::~析构函数名(){....}静态成员静态成员可以实现多个对象之间的数据共享,不会破坏隐藏原则,保证了安全性。静态成员在类中包括静态数据成员和静态成员函数。静态数据成员静态数据成员放在静态存储区,被同类建立的所有对象共享。静态数据成员的初始化在类外进行,格式为:<数据类型><类名>::<静态数据成员>=<初始值>注意:静态数据成员所占空间

8、不会随对象的产生而分配,也不会随对象的消失而回收。静态数据成员例题5classstudent{private:staticintcount;//静态数据成员countpublic:student()//构造函数{count++;//静态数据成员count上一次的值不会消失}voidprint(){printf("count=%d",count);}};intstudent::count=0;//在类外进行静态数据成员count的初始化voidmain(){stud

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。