ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:23.80KB ,
资源ID:22322181      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

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

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(类和对象Word文档下载推荐.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

类和对象Word文档下载推荐.docx

1、x=2,y=3。注意:构造函数是唯一不能被显式调用的成员函数,它在定义类的对象时自动调用,也称为隐式调用。- 题 2.分析以下程序的执行结果 Sample() if(x=y) x=yelse x!=y本题说明了析构函数的定义方法。首先定义了一个类Sample,在main()中定义了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,最后在退出程序时自动调用析构函数。x=2,y=3 =y 析构函数在对象的作用域结束时被自动隐式调用。- 题 3.分析以下程序的输出结果 int x;Sample(int a) x=a;constructing obje

2、ct:void func(int n) static Sample obj(n);func(1);func(10);本题说明静态对象构造函数的调用情况,由于在func()函数中定义的对象obj是静态对象,故只被构造一次,所以输出为:counstructing object:x=1 静态对象和静态变量一样,只被构造一次。块作用域的静态变量,在首次进入到定义该静态对象的函数时,构造该静态对象,以后进入该函数时不再构造静态对象。- 题 1.4 分析以下程序的执行结果 Sample s(2,3), *p=&s;p-disp();本题说明了对象指针的使用方法。这里通过指向对象的指针来调用对象的成员函数。

3、对象指针p指向对象s,p-disp()等价于s.disp()。 x=2,y=3.题 1.5 分析以下程序的执行结果 int y;int Sample:*pc;Sample s;pc=&Sample:x;s.*pc=10;y;s.*pc=20;s.disp();本题说明了类数据成员指针的使用方法。在main()中定义的pc是一个指向Sample类数据成员的指针。执行pc=&x时,pc指向数据成员x,语句s.*pc=10等价于s.x=10(为了保证该语句正确执行,Sample类中的x必须是公共成员);y时,pc指向数据成员y,语句s.*pc=20等价于s.y=20(同样,Sample类中的y必须是

4、公共成员)。 x=10,y=20。- 题 1.6 下面是一个类的测试程序,设计出能使用如下测试程序的类。Test a;a.init(68,55);a.print();其执行结果为:测试结果:68-55=13 本题是要设计Test类,其设计方法很多,这里给出一种解法。Test类包含两个私有数据成员x、y,以及两个公共成员函数init()和print(),前者用于给数据成员赋值,后者用于x,y的减法运算和输出相应的结果。class Test void init(int,int);void print();void Test:init(int i,int j) x=i;y=j;print() -=x

5、-ystring.h #define Max 100 class Bank int top;char dateMax10; / 日期 int moneyMax; / 金额 int restMax; / 余额 static int sum; / 累计余额 Bank()top=0;void bankin(char d,int m) strcpy(datetop,d);moneytop=m;sum=sum+m;resttop=sum;top+;void bankout(char d,int m) moneytop=-m;sum=sum-m;void disp();int Bank:sum=0;voi

6、d Bank:disp() int i;printf( 日期存入 取出余额n);for(i=0;itop;i+) %8s,datei);if(moneyi0) %6d,-moneyi);%6d ,moneyi);%6dn,resti);Bank obj;obj.bankin(2001.2.5,1000);2001.3.2,2000);obj.bankout(2001.4.1,500);2001.4.5,800);obj.disp();本程序的执行结果如下:日期 存入 取出 余额 2001.2.5 1000 1000 2001.3.2 2000 3000 2001.4.1 500 2500 20

7、01.4.5 800 1700 题 1 分析以下程序的执行结果 Sample s1,s2(2,3);s2.disp();本题说明了构造函数的调用顺序。首先定义了一个类Sample,在main()中定义了它的两个对象,定义s1对象时调用其默认构造函数(x=0,y=0),定义s2对象时调用其重载构造函数(x=2,y=3),然后,调用各自的成员函数输出各自的数据成员。x=0,y=0 - 题 2 分析以下程序执行的结果 Sample() x=y=0;Sample(int a,int b) x=a;s1.Sample();本题说明了可以显式调用析构函数。首先定义了一个类Sample,在main()中定义

8、了它的一个对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,然后调用一次析构函数,最后在退出程序时又自动调用析构函数,所以输出为:析构函数不同于构造函数,析构函数既能被显式调用,也能被隐式调用。题 3 分析以下程序的执行结果 本题说明了析构函数的调用顺序,这里定义了两个对象,先顺序调用s1和s2对象的构造函数,再调用各自的成员函数disp(),最后顺序调用s2和s1的析构函数。x=y 题4.分析以下程序的执行结果 if(s1.x=2) exit(0);本题说明了非正常退出程序时析构函数调用的情况。定义了一个类Sample,在main()中定义了它的一个

9、对象,定义s1对象时调用其重载构造函数(x=2,y=3),然后,调用其成员函数输出数据成员,由于if条件成立,执行exit非正常退出,不会隐式调用析构函数,所以输出为:如果程序使用exit、abort非正常退出,不会隐式调用析构函数,这样造成对象申请资源无法回收,从而导致操作系统的资源紧张而使应用程序无法运行。因此在通常情况下,应使用return语句正常退出。题5.分析以下程序的执行结果 Sample(int a,int b)x=a,y=b;Sample(2,3);本题说明了常量对象的构造函数和析构函数的调用情况。在main()中定义了一个常量对象,常量对象在构造之后立即析构。常量对象的作用域

10、不是整个main()函数,而是仅限于包含该常量的值表达式,表达式一旦计算完成,其中的对象就按构造的逆序析构。题6.分析以下程序的执行结果 Sample();Sample(int);Sample();void display();protected:Sample() x=0;constructing normallyn;Sample(int m) x=m;constructing with a number:void Sample:display() display a number:destructingnSample obj1;Sample obj2(20);obj1.display();o

11、bj2.display();本题构造函数与析构函数的调用顺序。这里定义了两个对象,先顺序调用obj1和obj2对象的构造函数,再调用各自的成员函数disp(),最后顺序调用obj2和obj1的析构函数。constructing nomally 20 0 destructing 题7.分析以下程序的执行结果 int n;Sample(int x)n=x;void add()sum+=n;n=n,sum=sum / 静态数据成员赋初值 Sample a(2),b(3),c(5);a.add();a.disp();b.add();b.disp();c.add();c.disp();本题说明静态数据成

12、员的使用方法。在类中定义了一个静态数据成员sum,在main()之前给它赋初值0,然后在main()中定义了三个对象,并执行各自的add()和disp()方法。n=2,sum=2 n=3,sum=5 n=5,sum=10 静态数据成员脱离具体的对象独立存在,其存储单元不是任何对象存储空间的一部分,但逻辑上所有对象都共享这一存储单元,对静态数据成员的任何操作都会访问这一存储单元,从而影响这一存储单元的所有对象。所以说静态数据成员不是对象成员,在引用时不需要用对象名。-题8.分析以下程序执行的结果 int A;static int B;Sample(int a)A=a,B+=a;static vo

13、id func(Sample s);func(Sample s) A=s.A,B=BB=0;Sample s1(2),s2(5);func(s1);func(s2);本题说明了静态成员函数的使用方法。其中的数据成员B是静态数据成员,求B之值是在构造函数中进行的。A=2,B=7 A=5,B=7 静态成员函数与静态数据成员一样,也不是对象成员。静态成员函数的调用不同于普通的成员函数。在静态成员函数的实现中,引用类的非静态数据成员是通过对象进行的,如本题中s.A,引用类的静态数据成员是直接进行的,如本题中的B。- 题9.分析以下程序的执行结果 char c1,c2;Sample(char a)c2=

14、(c1=a)-32;c1转换为c2Sample a(a),b(b本题说明了构造函数的调用方法。对于对象定义(c),构造函数执行c1=c,c2=c-32(小写转大写)。a转换为A b转换为B - 题10.分析以下程序执行的结果 Sample s1,s2(1,2),s3(10,20);Sample *pa3=&s1,&s2,&s3;for(int i=0;3;pai-本题说明对象指针数组赋初值方法。定义三个对象和一个对象指针数组,通过赋初值使后者的元素分别指向前面三个对象,然后使用for语句循环调用各个对象的disp()成员函数。x=1,y=2 x=10,y=20 - 题11. 分析以下程序的执行结果 end

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1