2016-2017年度面向对象程序设计试卷

上传人:飞****9 文档编号:132046845 上传时间:2020-05-12 格式:DOC 页数:13 大小:87.50KB
返回 下载 相关 举报
2016-2017年度面向对象程序设计试卷_第1页
第1页 / 共13页
2016-2017年度面向对象程序设计试卷_第2页
第2页 / 共13页
2016-2017年度面向对象程序设计试卷_第3页
第3页 / 共13页
2016-2017年度面向对象程序设计试卷_第4页
第4页 / 共13页
2016-2017年度面向对象程序设计试卷_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《2016-2017年度面向对象程序设计试卷》由会员分享,可在线阅读,更多相关《2016-2017年度面向对象程序设计试卷(13页珍藏版)》请在金锄头文库上搜索。

1、华中科技大学研究生课程考试试卷面向对象程序设计开卷闭卷公共课专业课课程名称: 课程类别 考核形式2017年1月9日学生类别_考试日期_ 院系_杨卫东、左峥嵘学号_姓名_任课教师_一、填空(共15分,每空1分)1、编译时的多态性通过_重载_函数实现。2、面向对象的四个基本特性是 抽象 、 多态 、 继承 和 封装 。3、假定AB为一个类,则执行“AB a(10), *b=&a, &p=a;”语句时调用该类构造函数的次数为 2 。4、C+类成员访问属性 public 、 private 、 protected 三种类型。 5、非成员函数应声明为类的_友元_函数才能访问这个类的private成员。6

2、、。要实现动态联编必须通过对象指针或引用来调用_虚函数_实现。7、类B是由类A以保护方式派生的,则类A中私有访问属性的数据成员在类B中的访问属性为 不可访问 。8、+、=、-等四种运算符中,可采用友元函数重载的运算符是 + 。9、抽象类是指具有 纯虚函数 的类,它只能作为 基类 来使用。二、问答题(共30分,每小题6分)1简述运算符重载的实现方式有哪几种?给出对应的声明语法形式。答案: (1)类外定义的运算符重载函数格式为:friend operator ( 参数1, 参数2) (2)成员运算符重载函数 :operator ( 参数) 2什么是多继承?多继承时,构造函数和析构函数执行顺序是怎样

3、的?答案:多继承是指派生类具有多个基类,派生类与每个基类之间的关系仍可看作是一个单继承。派生类构造函数的执行顺序是先执行所有基类的构造函数(顺序按照定义派生类时指定的各基类顺序),再执行派生类的构造函数,析构函数执行顺序,与构造函数完全相反。3写出下面程序的运行结果#include #include using namespace std;class Personpublic: Person(char *nam,int ag) strcpy(name,nam); age = ag; coutPerson类构造函数-nameendl; Person(char *nam) strcpy(name,

4、nam); coutPerson类构造函数(char *nam)-nameendl; Person() coutPerson类析构函数-nameendl; void display() cout姓名:nameendl; protected: char name100; int age;class Teacher: public Person / 声明Teacher(教师)类public: / 公用部分 Teacher(char *nam,int a,char *t):Person(nam,a) / 构造函数 strcpy(title,t); coutTeacher类构造函数endl; Teac

5、her() coutTeacher类析构函数endl; void display1() / 输出教师有关数据 cout姓名:nameendl; cout年龄ageendl; cout职称:titleendl; protected: / 保护部分char title10; / 职称; class Student: public Person public: Student(char *nam,char s,float sco):Person(nam) sex=s; score=sco; coutStudent类构造函数-nameendl; Student(char *nam, char s):P

6、erson(nam) sex=s; coutStudent类构造函数-班长:nameendl; Student() coutStudent类析构函数-nameendl; void display2() / 输出学生有关数据 cout姓名:nameendl; cout性别:sexendl; cout成绩:scoreendl; char *get_name() return name; protected: / 保护部分char sex;float score; / 成绩;class Graduate: public Teacher, public Student public: Graduate

7、(char *nam,int a,char s,char *t,float sco,float w):Teacher(nam,a,t),Student(nam,s,sco),wage(w),monitor(Li Ming,m) coutGraduate类构造函数endl; Graduate() coutGraduate类析构函数endl; void show( ) / 输出人员的有关数据 coutname:Student:nameendl; coutage:Student:ageendl; coutsex:sexendl; coutscore:scoreendl; couttitle:titl

8、eendl; coutwages:wageendl; coutmonitor:monitor.get_name()endl; Student monitor;private: float wage; / 工资;class Doctor:public Graduatepublic: Doctor(char *nam,int a,char s,char *t,float sco,float w,char *tutor): Graduate(nam,a,s,t,sco,w) strcpy(tutor_name, tutor); couttutor_nameendl; private: char tu

9、tor_name20;int main() Doctor d(Wang-li,24,f,assistant,89.5,1234.5,Wang-wu); return 0;答案:Person类构造函数-Wang-liTeacher类构造函数Person类构造函数(char *nam)-Wang-liStudent类构造函数-Wang-liPerson类构造函数(char *nam)-Li MingStudent类构造函数-班长:Li MingGraduate类构造函数Wang-wuGraduate类析构函数Student类析构函数-Li MingPerson类析构函数-Li MingStuden

10、t类析构函数-Wang-liPerson类析构函数-Wang-liTeacher类析构函数Person类析构函数-Wang-li4写出下面程序的运行结果#include #include using namespace std;class A char string80;public :void show();A(char * st);A( );A:A(char * st) strcpy(string, st);cout string 构造 endl;A:A( ) cout string 析构 endl; void A:show() cout string endl;void fun( ) cout 1 fun内 endl; A fun_Obj(2 fun内自动对象fun_Obj); static A fun_sta_Obj(3 fun内静态对象fun_sta_Obj);void main( ) A *ptrA = new A(4 main内动态分配对象m_all_Obj); if(ptrA=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号