2015-2016年度面向对象程序设计试卷.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE10 / 8 华中科技大学研究生课程考试试卷 面向对象程序设计√√□ 面向对象程序设计 √ √ □开卷 □闭卷 □公共课 □专业课 课程名称: 课程类别 考核形式 2016年1月12日学生类别______________考试日期______________ 院系_______________ 2016年1月12日 杨卫东 杨卫东、左峥嵘 一、填空(共15分,每空1分) 1、静态多态性是通过 函数重载、运算符重载、模板 来实现。 2、面向对象的四个基本特性是 抽象 、 多态 、 继承 和 封装 。 3、假定AB为一个类,则执行“AB a(10), b[1],*p[10];”语句时调用该类构造函数的次数为 2 。 4、C++类成员函数有 public 、 private 、 protected 三种类型。 5、如果将一个对象说明为常对象,则通过该对象只能调用它的 常成员 函数。 6、为使外部函数可访问类的私有成员,需将该函数声明为该类的 友元函数 。 7、类B是由类A以保护方式派生的,则类A中公有访问属性的数据成员在类B中的访问属性为 保护 。 8、+、=、[]、-等四种运算符中,可采用友元函数重载的运算符是 + 。 9、抽象类是指具有 纯虚函数 的类,它只能作为 基类 来使用。 二、简答题(共30分,每小题6分,其中4、5题任选其一作答即可) 1.什么是类模板,类模板声明的一般形式是什么? 答案: 类模板是对一批仅仅成员 数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。 定义类模板的一般形式是:  template 类型名 参数名1,类型名参数名2,…  class 类名  {   类声明体  }; 2.什么是this指针? 它的主要作用是什么? 答案: this指针:隐含在非静态成员函数中的特殊指针,它是当前正在调用此成员函数的对象的指针。 作用:主要是用于保证访问不能跨界和用于区分不同的对象。成员函数对成员变量的引用实际是通过this指针访问的,也就是说:成员变量this-成员变量;另外,如果成员函数需要访问当前对象,也可以通过this指针,*this就是当前对象。 3.什么是多继承?多继承时,构造函数和析构函数执行顺序是怎样的? 答案: 多继承是指派生类具有多个 基类, 派生类与每个基类之间的关系仍可看作是一个单继承。 派生类构造函数的执行顺序是先执行所有基类的构造函数(顺序按照定义派生类时指定的各基类顺序),再执行派生类的构造函数,析构函数执行顺序,与构造函数完全相反。 4.写出下面程序的运行结果 答案: constructor B2.2 constructor B1.1 constructor B3.3 constructor A.4 1 2 4,3 #includeiostream using namespace std; class B1{ int b1; public: B1(int i) { b1 = i; cout constructor B1.iendl; } void print() { coutb1endl; } }; class B2{ int b2; public: B2(int i) { b2 = i; coutconstructor B2.iendl; } void print() { coutb2endl; } }; class B3{ int b3; public: B3(int i) { b3 = i; coutconstructor B3.iendl; } int getb3() { return b3; } }; class A:public B2, B1{ int a; B3 bb; public: A(int i,int j, int k, int l):B1(i),bb(k),B2(j) { a=l;coutconstructor A.lendl;} void print() { B1::print();B2::print(); couta,bb.getb3()endl; } }; int main() { A aa(1,2,3,4); aa.print(); return 0; } 5.写出下面程序的运行结果 答案: 6 外部静态对象g_sta_Obj[构造] 7 外部对象g_glb_Obj[构造] 4 main内动态分配对象m_all_O

文档评论(0)

liwenhua11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档