ImageVerifierCode 换一换
格式:PPT , 页数:103 ,大小:839.01KB ,
资源ID:2380213      下载积分:18 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2380213.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(2016.5.20上机内容.ppt)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

2016.5.20上机内容.ppt

1、2016.5.20上机内容3 把下面这个程序改写成面向对象的程序。4使用全局对象#includeusing namespace std;int global;void f()global=5;void g()coutglobalendl;int main()f();g();/输出“5”return 0;56将函数与数据封装#includeusing namespace std;class Application public:void f();void g();private:int global;void Application:f()global=5;void Application:g(

2、)coutglobalendl;int main()Application MyApp;MyApp.f();MyApp.g();return 0;78#includeusing namespace std;class Application public:Application();void g();private:int global;Application:Application()global=5;void Application:g()coutglobalendl;int main()Application MyApp;MyApp.g();return 0;9#includeusing

3、 namespace std;class Application public:Application(int i=5);void g();private:int global;Application:Application(int i)global=i;void Application:g()coutglobalendl;int main()Application MyApp;MyApp.g();Application MyApp1(10);MyApp1.g();return 0;以下对类A的定义,哪个是正确的?class A private:int v;public:void Func()

4、class A int v;A*next;void Func();class A int v;public:void Func();A:void Func()class A int v;public:A next;void Func();16改正下面的错误,并说明原因。17#include using namespace std;class Base public:void setX(int a)x=a;void getX()return x;private:float x;int main()Base b1;b1.x=95.5;coutb1.xendl;19错#include using n

5、amespace std;class Base public:void setX(int a)x=a;void getX()return x;private:float x;int main()Base b1;b1.x=95.5;coutb1.xendl;21#include using namespace std;class Base public:void setX(float a)x=a;float getX()return x;private:float x;void main()Base b1;b1.setX(95.5);coutb1.getX()endl;2224 看看下面的程序是

6、否有错?25#includeusing namespace std;class Tree public:Tree(int ages=0);Tree(Tree&C);Tree();void grow(int years);void age();private:int ages;Tree:Tree(int ages=0)this-ages=ages;Tree:Tree(Tree&C)ages=C.ages;void Tree:grow(int years)ages+=years;void Tree:age()coutagesendl;int main()Tree t(12);t.age();t.g

7、row(4);t.age();Tree t1(t);t1.age();return 0;26f1.cpp(15):error C2572:Tree:Tree:redefinition of default parameter:parameter 127#includeusing namespace std;class Treepublic:Tree(int ages=0);Tree(Tree&C);Tree();void grow(int years);void age();private:int ages;/Tree:Tree(int ages=0)this-ages=ages;/error

8、 p83Tree:Tree(int ages)this-ages=ages;Tree:Tree(Tree&C)ages=C.ages;void Tree:grow(int years)ages+=years;void Tree:age()coutagesendl;int main()Tree t;t.age();t.grow(4);t.age();Tree t1(t);t1.age();return 0;28 30读程序,写结果。31#include using namespace std;class Cat public:Cat(int w=0):w(w)+count;int getCoun

9、t()return count;int getWeight()return w;private:int w;static int count;int Cat:count=0;/初始化静态数据成员void main()Cat c1(5),c2(6),c3(7);cout c1.getWeight();cout c1.getCount()endl;cout c2.getWeight();cout c2.getCount()endl;cout c3.getWeight();cout c3.getCount()endl;3233#include using namespace std;class Ca

10、t public:Cat(int w=0):w(w)+count;int getCount()return count;int getWeight()return w;private:int w;static int count;int Cat:count=0;/初始化静态数据成员void main()Cat c1(5);cout c1.getWeight();cout c1.getCount()endl;Cat c2(6);cout c2.getWeight();cout c2.getCount()endl;Cat c3(7);cout c3.getWeight();cout c3.getC

11、ount()endl;3436 静态成员函数举例37 class A public:static void f(A a);private:int x;void A:f(A a)coutx;/对x的引用是错误的 couta.x;/正确38 class A public:static void f(A a)coutx;/对x的引用是错误的 couta.x;/正确 private:int x;39静态成员函数可以直接访问该类的静态数据和静态成员函数。而访问非静态成员,必须通过对象名40#includeusing namespace std;class A public:static void f(A

12、 a);private:int x;void A:f(A a)/coutx;/对对x的引用是错误的的引用是错误的 couta.x;/正确正确void main()A a1;A:f(a1);4142改过来加了构造函数43#includeusing namespace std;class A public:A(int x):x(x)static void f(A a);private:int x;void A:f(A a)/coutx;/对对x的引用是错误的的引用是错误的 couta.x;/正确正确void main()A a1(8);A:f(a1);coutendl;44以下为附加阅读构造函数(

13、constructor)成员函数的一种 名字与类名相同,可以有参数,不能有返回值(void也不行)作用是对对象进行初始化,如给成员变量赋初值 如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数 默认构造函数无参数,不做任何操作 构造函数最好是public的,private构造函数 不能直接用来初始化对象#include using namespace std;class CAbc private:CAbc();int main()CAbc Obj;/error return 0;有类A如下定义:class A int v;public:A(int n)v=n;下面哪条语句是编译不

14、会出错的?A a1(3);A a2;/error复制构造函数(copy constructor)只有一个参数,即对同类对象的引用。形如 X:X(X&)或X:X(const X&),二者选一,后者能以常量对象作为参数 如果没有定义复制构造函数,那么编译器生成默认复制构造函数。默认的复制构造函数完成复制功能。class Complex private:double real,imag;Complex c1;/调用缺省无参构造函数 Complex c2(c1);/调用缺省的复制构造函数,将 c2 初始化成和c1一样 如果定义的自己的复制构造函数,则默认的复制构造函数不存在。class Complex

15、 public:double real,imag;Complex()Complex(const Complex&c)real=c.real;imag=c.imag;Complex c1;/调用缺省无参构造函数 Complex c2(c1);/调用自己定义的复制构造函数复制构造函数起作用的三种情况 1)当用一个对象去初始化同类的另一个对象时。Complex c2(c1);Complex c2=c1;/初始化语句,非赋值语句2)如果某函数有一个参数是类 A 的对象,那么该函数被调用时,类A的复制构造函数将被调用。class A public:A();A(A&a)cout Copy construc

16、tor called endl;void Func(A a1)int main()A a2;Func(a2);return 0;3)如果函数的返回值是类A的对象时,则函数返回时,A的复制构造函数被调用:class A public:int v;A(int n)v=n;A(const A&a)v=a.v;cout Copy constructor called endl;A Func()A b(4);return b;int main()cout Func().v 成员名 CRectangle*p=&r;p-PrintTotal();4)引用.成员名 CRectangle&ref=r;int n

17、ref.nTotalNumber;静态成员变量本质上是全局变量,哪怕一个对象都不存在,类的静态成员变量也存在。静态成员函数本质上是全局函数。设置静态成员这种机制的目的是将和某些类紧密相关的全局变量和函数写到类里面,看上去像一个整体,易于维护和理解。考虑一个需要随时知道矩形总数和总面积的图形处理程序 可以用全局变量来记录总数和总面积 用静态成员将这两个变量封装进类中,就更容易理解和维护 class CRectangle private:int w,h;static int nTotalArea;static int nTotalNumber;public:CRectangle(int w_,i

18、nt h_);CRectangle();static void PrintTotal();CRectangle:CRectangle(int w_,int h_)w=w_;h=h_;nTotalNumber+;nTotalArea+=w*h;CRectangle:CRectangle()nTotalNumber-;nTotalArea-=w*h;void CRectangle:PrintTotal()cout nTotalNumber ,nTotalArea endl;int CRectangle:nTotalNumber=0;int CRectangle:nTotalArea=0;/必须在定

19、义类的文件中对静态成员变量进行一次说明/或初始化。否则编译能通过,链接不能通过。int main()CRectangle r1(3,3),r2(2,2);/cout CRectangle:nTotalNumber;/Wrong,私有 CRectangle:PrintTotal();r1.PrintTotal();return 0;输出结果:2,13 2,13 在静态成员函数中,不能访问非静态成员变量,也不能调用非静态成员函数。void CRectangle:PrintTotal()cout w ,nTotalNumber ,nTotalArea endl;/error CRetangle:Pr

20、intTotal();/解释不通,w 到底是属于那个对象的?此CRectangle类写法,有何缺陷?CRectangle:CRectangle(int w_,int h_)w=w_;h=h_;nTotalNumber+;nTotalArea+=w*h;CRectangle:CRectangle()nTotalNumber-;nTotalArea-=w*h;void CRectangle:PrintTotal()cout nTotalNumber ,nTotalArea endl;在使用CRectangle类时,有时会调用复制构造函数 生成临时的隐藏的CRectangle对象 调用一个以CRec

21、tangle类对象作为参数的函数时,调用一个以CRectangle类对象作为返回值的函数时 临时对象在消亡时会调用析构函数,减少nTotalNumber 和 nTotalArea的值,可是这些临时对象在生成时却没有增加 nTotalNumber 和 nTotalArea的值。解决办法:为CRectangle类写一个复制构造函数。CRectangle:CRectangle(CRectangle&r)w=r.w;h=r.h;nTotalNumber+;nTotalArea+=w*h;this指针作用 非静态成员函数中可以直接使用this来代表指向该函数作用的对象的指针。this指针和静态成员函数

22、静态成员函数中不能使用 this 指针!因为静态成员函数并不具体作用与某个对象!因此,静态成员函数的真实的参数的个数,就是程序中写出的参数个数!常量对象、常量成员函数和常引用常量对象如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字。如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字。class Demo private:int value;public:void SetValue();const DemoObj;/常量对象常量成员函数在类的成员函数说明后面可以加const关键字,则该成员函数成为常量成员函数。常量成员函数在类的成员函数说明后

23、面可以加const关键字,则该成员函数成为常量成员函数。常量成员函数执行期间不应修改其所作用的对象。因此,在常量成员函数中不能修改成员变量的值(静态成员变量除外),也不能调用同类的非常量成员函数(静态成员函数除外)。常量成员函数的重载两个成员函数,名字和参数表都一样,但是一个是const,一个不是,算重载。class CTestprivate:int n;public:CTest()n=1;intGetValue()const return n;intGetValue()return 2*n;intmain()const Ctest objTest1;Ctes tobjTest2;cout objTest1.GetValue(),objTest2.GetValue();return 0;常引用引用前面可以加const关键字,成为常引用。不能通过常引用,修改其引用的变量。const int&r=n;r=5;/errorn=4;/ok可以用对象的引用作为参数,如:class Sample ;void PrintfObj(Sample&o)对象引用作为函数的参数有一定风险性,若函数中不小心修改了形参o,则实参也跟着变,这可能不是我们想要的。如何避免?

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服