




免费预览已结束,剩余56页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,3.1类与对象概念的引入3.2类的声明3.3对象的声明3.4构造函数与析构函数3.4.1构造函数3.4.2析构函数3.5类的组合3.6静态成员3.6.1静态数据成员3.6.2静态成员函数,3.7友元3.7.1友元函数3.7.2友元类3.8常对象、常成员函数与常数据成员3.8.1常对象3.8.2常数据成员3.8.3常成员函数3.9类的作用域及对象的生存期3.9.1类作用域3.9.2对象生存期3.10面向对象标记,第3章类与对象,【3.1类与对象概念的引入】,类的声明形式如下:class类名public:若干成员;protected:若干成员;private:若干成员;,【3.2类的声明】,例3-1,public:/公有成员,声明类的外部接口voidsetcylinder(doubler,doubleh);/成员函数,用来设置圆柱体的半径和高doublegetradius();/成员函数,用来获取圆柱体的半径doublegetheight();/成员函数,用来获取圆柱体的高doublevolume();/成员函数,用来计算圆柱体的体积doublesurface_area();/成员函数,用来计算圆柱体的表面积private:/私有成员doubleradius;/数据成员,声明圆柱体的半径doubleheight;/数据成员,声明圆柱体的高;,例3-2,它的一般格式如下:返回值类型类名:成员函数名(参数表)函数体,例3-4,例3-5,doubleCylinder:surfacearea()doublearea;area=2*3.1415926*radius*height+2*3.1415926*radius*radius;returnarea;,例3-6,例3-7,例3-8,例如:Cylindercylinder1,cylinder2;,例如:Cylindercylinder110;,【3.3对象的声明】,例如:cylinder1.volume(),例如:Cylindercylinder1;cylinder1.radius=6.0;,例如:Aaobject;aobject.X=5;,私有成员只能被类内的成员函数访问。,例3-9,(续),(续),coutThesurfaceareaofthesecondcylinderis:tcylinder2.surface_area()endl;/计算对象cylinder2的表面积,并输出,(续),如:classA.classB.Aa;.;,如:classB;classApublic:voidfun(Bb);.;classB.;,classB;/引用性声明classApublic:voidfun(Bb);/正确private:Bb;/错误,类B尚未定义;voidA:fun(Bb)coutb.getx;/错误classB/声明类B,也即定义类Bpublic:voidsetx(inta)x=a;intgetx()returnx;private:intx;,例如:下面的使用方法就是错误的。,【3.4.1构造函数】,【3.4构造函数与析构函数】,doublegetradius();doublegetheight();doublevolume();doublesurface_area();private:doubleradius;doubleheight;;Cylinder:Cylinder()radius=5.0;height=10.0;,例3-11,doublegetradius();doublegetheight();doublevolume();doublesurface_area();private:doubleradius;doubleheight;;Cylinder:Cylinder(doubler,doubleh)radius=r;height=h;,例如:Cylindercylinder1(2.0,3.0);Cylindercylinder1;/错误,没有提供用于初始化的实参,(续),Cylindercylinder13=Cylinder(1.0,2.0),Cylinder(3.0,4.0),Cylinder(5.0,6.0);,例3-12,(续),(续),其形式如下:类名:类名(),(续),例3-13,/EXAMPLE3_13.CPP#includeEXAMPLE3_13.Hvoidmain()Aa;Ab(10,10);,【3.4.2析构函数】,例3-14,组合类的构造函数应定义成如下形式:类名:类名(形参表):对象1(形参表),对象2(形参表),对象n(形参表)函数体,【3.5类的组合】,例3-15,B()/析构函数coutclassBdestructingendl;private:intb;classCpublic:C(intx,inty):a1(y)/构造函数c=x;coutclassCconstructingwithoutobjectb1isnotevaluated;coutttcendl;C(intx,inta,intb);/构造函数C()/析构函数coutclassCdestructingendl;,(续),private:intc;Aa1;Bb1;/EXAMPLE315.CPP#includeEXAMPLE315.HC:C(intx,inta,intb):b1(a),a1(b)/定义构造函数c=x;coutclassCconstructingttcendl;voidmain()Cc1(2,3);coutObjectc1ofclassChasbeencreatedendl;Cc2(10,20,30);coutObjectc2ofclassChasbeencreatedendl;coutDestroythemendl;,(续),(续),classApublic:A(intx):a(x)coutclassAconstructingttaendl;A()coutclassAdestructingendl;private:inta;,例如,【例3-15】中类A的声明就可以改为如下形式:,【3.6.1静态数据成员】,【3.6静态成员】,例3-16,coutX=atY=bendl;voidgetSUM()sum=sum+a+b;coutSUM=sumendl;private:inta,b;staticintsum;intA:sum=0;/静态数据成员的定义/EXAMPLE3_16.CPP#includeEXAMPLE3_16.Hvoidmain()Aa1(1,2);a1.getXY();a1.getSUM();Aa2(3,4);a2.getXY();a2.getSUM();,(续),例如:#includeclassApublic:staticintx;intA:x=0;voidmain()coutA:xendl;A:x=10;coutA:xendl;,形式如下:类名:静态数据成员名,【3.6.2静态成员函数】,例3-17,intA:y=0;voidmain()Aa1(1,2);a1.fun1();/通过对象名访问A:fun2(a1);/通过类名访问Aa2(3,4);A:fun1();/通过类名访问a2.fun2(a2);/通过对象名访问,(续),【3.7.1友元函数】,【3.7友元】,例3-18,intx;/EXAMPLE3_18.CPP#includeEXAMPLE3_18.HvoidA:memberfun(intx)Bb(0)coutX=b.xendl;b.x=x;coutX=b.xendl;voidfun()Bb(10);coutX=b.xendl;voidmain()fun();Aa;a.memberfun(100);,(续),【3.7.2友元类】,例如:classApublic:A(inti,intj);.private:inta,b;A:A(inti,intj)a=i;b=j;Aconsta(1,2);constAb(3,4);,【3.8常对象、常成员函数与常数据成员】,【3.8.2常数据成员】,例3-19,【3.8.3常成员函数】,例3-20,coutInvoidA:getAB()constendl;coutA=atB=bM这样的表达式中,其中p是指向类A的一个对象的指针。,【3.9.1类作用域】,【3.9.2对象生存期】,【3.9类的作用域及对象的生存期】,例如:#includeinti=0;/变量i具有静态生存期,且具有文件作用域voidmain()couti=iendl;,1.静态生存期,例如:voidfun()staticintI=0;/变量I具有静态生存期,但其可见性是局部的.,2.动态生存期,例3-21,year=y;month=m;day=d;voidDate:setDate(inty,intm,intd)year=y;month=m;day=d;voidDate:showDate()constcoutyear年month月day日endl;Datedate1(2001,1,1);/date1具有静态生存期,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 8.1 《梦游天姥吟留别》教学设计 2024-2025学年统编版高中语文必修上册 2024-2025学年统编版高中语文必修上册
- 电池厂员工考勤考核制度
- 五年级体育下册 第三课 向后转走说课稿
- 化肥厂通勤福利制度
- 美容院美容师服务合同
- 第1章网络概述1.2网络的类型 -高中教学同步《信息技术-网络基础》教学设计(人教-中图版2019)
- 8.从生活中吸取设计的灵感说课稿-2025-2026学年初中美术浙教版八年级上册-浙教版
- 七年级地理上册 第三章 第二节 气温的变化与分布说课稿 新人教版
- 安徽省宿州市灵璧实验学校2024-2025学年八年级下学期期中生物试题 (含答案)
- 生态旅游项目招标工作计划编制与可持续发展规划合同
- 2025春新思想专题八-社会主义现代化建设的教育科技人才战略
- 隧道防止坍塌培训
- 2025年甘肃省白银市九年级中考考试语文真题试卷(中考真题+答案)
- 双轨吊搭设方案
- 围手术期病人的疼痛护理
- 2025年全国高校辅导员素质能力大赛基础知识测试题及答案(共3套)
- 艾青的诗歌《火把》赏析
- 口腔外科手术引流管护理
- 《铁路路基施工与维护》高职高速铁路施工与维护全套教学课件
- 公路汛期安全培训
- mdt护理管理制度
评论
0/150
提交评论