2016_2017年度面向对象程序的设计试卷.docVIP

  • 3
  • 0
  • 约8.5千字
  • 约 13页
  • 2020-02-25 发布于安徽
  • 举报

2016_2017年度面向对象程序的设计试卷.doc

. . . 华中科技大学研究生课程考试试卷 面向对象程序设计√√□ 面向对象程序设计 √ √ □开卷 □闭卷 □公共课 □专业课 课程名称: 课程类别 考核形式 2017年1月9日 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、。要实现动态联编必须通过对象指针或引用来调用_虚函数_实现。 7、类B是由类A以保护方式派生的,则类A中私有访问属性的数据成员在类B中的访问属性为 不可访问 。 8、+、=、[]、-等四种运算符中,可采用友元函数重载的运算符是 + 。 9、抽象类是指具有 纯虚函数 的类,它只能作为 基类 来使用。 二、问答题(共30分,每小题6分) 1.简述运算符重载的实现方式有哪几种?给出对应的声明语法形式。 答案: (1)类外定义的运算符重载函数 格式为: friend 返回类型 operator op(类型 参数1,类型 参数2) { 函数体 } (2)成员运算符重载函数 返回类型 类名::operator op (类型 参数) { 函数体 } 2.什么是多继承?多继承时,构造函数和析构函数执行顺序是怎样的? 答案: 多继承是指派生类具有多个 基类, 派生类与每个基类之间的关系仍可看作是一个单继承。 派生类构造函数的执行顺序是先执行所有基类的构造函数(顺序按照定义派生类时指定的各基类顺序),再执行派生类的构造函数,析构函数执行顺序,与构造函数完全相反。 3.写出下面程序的运行结果 #include iostream #include string using namespace std; class Person { public: Person(char *nam,int ag) { strcpy(name,nam); age = ag; coutPerson类构造函数---nameendl; } Person(char *nam) { strcpy(name,nam); coutPerson类构造函数(char *nam)---nameendl; } ~Person() { coutPerson类析构函数---nameendl; } void display() { cout姓名:nameendl; } protected: char name[100]; int age; }; class Teacher: public Person // 声明Teacher(教师)类 { public: // 公用部分 Teacher(char *nam,int a,char *t):Person(nam,a) // 构造函数 { strcpy(title,t); coutTeacher类构造函数endl; } ~Teacher() { coutTeacher类析构函数endl; } void display1() // 输出教师有关数据 { cout姓名:nameendl; cout年龄ageendl; cout职称:titleendl; } protected: // 保护部分 char title[10]; // 职称 }; class Student: public Person { public: Student(char

文档评论(0)

1亿VIP精品文档

相关文档