2017-2018年华科面向对象程序设计试卷_第1页
2017-2018年华科面向对象程序设计试卷_第2页
2017-2018年华科面向对象程序设计试卷_第3页
2017-2018年华科面向对象程序设计试卷_第4页
2017-2018年华科面向对象程序设计试卷_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、华中科技大学研究生课程考试试卷课程名称:面向对象程序设计课程类别詈詈考核形式三贤专业牌闭卷学生类别考试日期2018年1月19日院系学号日生名任课教师杨卫东、左峥-一、填空(共15分,每空1分)1、编译时的多态性是通过来实现。2、面向对象的四个基本特性是>>f口。3、假定AB为一个类,则执行“Ca(2),&p=a,c1,*b=c;"语句时调用该类构造函数的次数为。4、C+谈成员访问属性?>:三种类型。5、非成员函数应声明为类的函数才能访问这个类的private成员。6、要实现动态联编,必须通过基类指针或来调用虚函数实现。7、在用class定义一个类时,数据成员

2、和成员函数的默认访问权限是。8、:、+、=四种运算符中,不可重载的运算符是,可采用友元函数重载的运算符是。9、成员函数中有的类不能用来实例化对象。二、问答题(共35分,每小题5分)1 .阐述为何在类的派生中要引入虚基类?2 .简述带虚基类和非虚基类的多继承派生类构造函数调用顺序。3 .写出下面程序的运行结果#include<iostream>#include<string.h>usingnamespacestd;classAcharstring80;public:voidshow();A(char*st);A();A:A(char*st)strcpy(string,st

3、);cout<<string<<"构造"<<endl;A:A()cout<<string<<"析构"<<endl;voidA:show()cout<<string<<endl;voidfun(char*st)cout<<"1fun内:"<<st<<endl;staticAfun_sta_Obj("2fun内静态对象fun_sta_Obj");Afun_Obj("3fun内自动

4、对象fun_Obj");Ag_glb_Obj("4外部对象g_glb_Obj");staticAg_sta_Obj("5外部静态对象g_sta_Obj");voidmain()A*ptrA=newA("6main内动态分配对象m_all_Obj");if(ptrA=NULL)return;cout<<"7main内调用fun函数"<<endl;fun("cal1");fun("cal2");deleteptrA;)4 .写出下面程序的输出结果

5、#include<iostream>usingnamespacestd;classApublic:virtualvoidPrint(inta) cout<<"A:P1"<<"a="<<a<<endl;virtualvoidPrint(floata,doubleb=2.8) cout<<"A:P2"<<"a="<<a<<",b="<<b<<endl;classB:pu

6、blicApublic:virtualvoidPrint(inta) cout<<"B:P1"<<"a="<<a<<endl;virtualvoidPrint(floata,floatb) cout<<"B:P2"<<"a="<<a<<",b="<<b<<endl;voidShow(A*p) ->Print(2);p->Print(2,1.9);voidmain()

7、A*pa=newA;B*pb=newB;Show(pa);Show(pb);deletepa;deletepb;5 .写出下面程序的输出结果#include<iostream>#include<string>usingnamespacestd;classOBJ1(public:OBJ1()cout<<"1-OBJ1类构造"<<endl;);classOBJ2public:OBJ2()cout<<"2-OBJ2类构造"<<endl;classBase1public:Base1()cou

8、t<<"3-Base1类构造"<<endl;classBase2:virtualpublicBase1public:Base2()cout<<"4-Base2类构造"<<endl;classBase3public:Base3()cout<<"5-Base3类构造"<<endl;classBase4public:Base4()cout<<"6-Base4类构造"<<endl;classDerivedA:publicBase

9、1,virtualpublicBase2,publicBase3,virtualpublicBase4public:DerivedA():Base4(),Base3(),Base2(),Base1(),obj2(),obj1()(cout<<"7-派生类构造成功"<<endl;)protected:OBJ1obj1;OBJ2obj2;Base1base1;Base2base2;);intmain(intargc,char*argv口)(DerivedAaa;cout<<"8-end"<<endl;retur

10、n0;)6 .以下程序代码是否有错,如有请改正并写出运行结果#include<iostream>usingnamespacestd;template<typenameT>classA(private:Tx,y,s;public:A(Ta,Tb)x=a,y=b;s=x+y;voidshow()cout<<"x+y="<<s<<endl;voidmain()Aadd(2.5,3.3);add.show();7 .以下程序可动态分配二维数组并释放内存,能实现二维指针和一维指针复用,试问程序有几处错,找出并说明原因改正之。

11、#include<iostream.h>#include<string.h>void*fspace_2d(introw,intcol,intlenth)(char*p=(char*)calloc(lenth,row*col);void*b=(void*)calloc(sizeof(void*),row);for(inti=0;i<row;i+)bi=(void*)(p+i*col*lenth);return(b);voidffree_2d(void*a,introw)(for(inti=0;i<row;i+)free(ai);free(a);voidmain

12、()(float*pArray2D=(float*)fspace_2d(r,c,sizeof(float);ffree_2d(void*)pArray2D,r);三、完成程序题(共15分,每小题5分)1.完成下面类中成员函数定义,实现圆括号“()”运算符重载#defineN3classA(intvalueNN;public:int&return;voidmain() ;inti,j;for(i=0;i<N;i+)for(j=0;j<N;j+)( =i+j;/矩阵元素赋值)for(i=0;i<N;i+)(cout<<"nArr"<&

13、lt;i<<"="for(j=0;j<N;j+)cout<<<<","/输出i行j列的元素值)cout<<"n")2.完成下面类中成员函数的定义,实现增量运算符重载classCounter(unsignedvalue;Counter()value=0;Counter&;/前置增量运算符函数。voidPrint();/输出value值;Counter&a.value+;/Counter类对象value值增1cout<<"调用前置增量运算符函数!n

14、"returna;/该函数的返回值是value值增1后的对象voidCounter:Print()staticinti=0;+i;cout<<"("<<i<<")对象的value值="<<value<<endl;)voidmain()(Counterc;for(inti=0;i<3;i+)+c;c.Print();)3.完成下面类中成员函数的定义。#include<iostream>#include<string>usingnamespacestd;(private:char*st;/字符串指针public: set(a);str&operator=()deletest;set(a.st);return*this;voidset()/初始化st;strcpy(st,s);字符

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论