面向对象程序设计复习资料.doc_第1页
面向对象程序设计复习资料.doc_第2页
面向对象程序设计复习资料.doc_第3页
全文预览已结束

下载本文档

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

文档简介

27下列关于this指针的叙述中,正确的是_D_D类的非静态成员函数才有this指针30设置虚基类的目的是_A_ A.消除二义性B.简化代码C.提高运行效率D.减少目标代码36在C+类语言体系中,不能被派生类继承的有_BA转换函数B构造函数C虚函数D静态成员函数38下列关于虚基类的描述中 A.设置虚基类的目的是为了消除二义性;C.若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用;D.若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数;41.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是( )。 D A一元成员运算符 B二元成员运算符 C一元友元运算符 D选项B和选项C都可能 43下面关于虚函数的描述,错误的是( )。 B A在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数 B基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数 C虚函数可以是另一个类的友元函数,但不能是静态成员函数 D基类中说明的纯虚函数在其任何派生类中都必须实现47下面正确的是,在父类中的访问属性访问修饰符在子类中的访问属性()CA)public,private不能直接访问 B)protect,public,publicC)private,public不能直接访问 D)protect,private,protect48类A是类B的友元,类B是类C的友元,则下列说法正确的是DA)类B是类A的友元B)类C是类A的友元C)类A是类C的友元D)以上都不对51.下列说法正确的是BA)内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D)类的内联函数必须在类体外通过加关键字inline定义52.下面对静态数据成员的描述中,正确的是DA)静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用C)静态数据成员不能受private控制符的作用D)静态数据成员可以直接用类名调用二、知识点1.实现运行时的多态性要使用虚函数。2.如果一个类至少有一个纯虚函数,那么就称该类为抽象类。3. 运算符重载不能改变操作符的个数、运算符的优先级、运算符的结合性和运算符的语法结构。4. 构造函数是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。5. 静态成员函数不能直接引用类中说明的非静态成员。6. 引用是给对象取一个别名,它引入了对象的同义词。7.设置友元函数的目的是为能够访问该类的私有成员。8.运算符重载仍然保持原来的优先级、结合性和语法结构。9.基类的私有成员不能被派生类的成员访问。10.静态联编支持的多态性称为编译时的多态性,也称静态多态性。11.任何类中允许有三种访问权限的数据,这三种访问权限分别是public、private、protected。12.为了满足运算符“+”的可交换性,必须将其重载为友元函数。13.对于含有对象成员的派生类,其构造函数的执行顺序为:先执行基类的构造函数、再执行对象成员的构造函数,后执行派生类的构造函数。14.利用成员函数对双目运算符重载,其左操作数为this指针指出的对象,右操作数为成员函数参数。15.C+允许在相同的作用域内以相同的名字定义几个不同实现的函数,称这种同一个函数名多个含义的现象为函数重载。16. 通过使用new和delete两个运算符进行的分配为动态存储分配。17. 当类定义中有数据成员为指针时,解决浅拷贝出现的运行错误的方法是编写拷贝构造函数。18. 如果使用protected继承基类,其公有成员就会变成派生类的保护成员,其保护成员就会变成派生类的保护成员,其私有成员不能继承19. 一个函数功能不太复杂但要求被频繁调用,应定义为内联函数。20. 抽象类只能作为基类使用,而不能声明它的对象。 21. 构造函数可以重载,析构函数不可以重载。22. 静态成员函数没有this指针。23. 类有两个特殊的成员函数构造函数和析构函数。24. 在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。其中operator+有一个参数,operator*有两个参数。25. 一个派生类只有一个基类的情况称为单继承,而有多个直接基类的情况称为多继承。26. 调用析构函数的次序正好与调用构造函数的次序相反。27. 非成员函数应说明为类的友元函数才能访问这个类的private成员。28. 通过使用new和delete两个运算符进行的分配为动态存储分配。29如果类B继承了类A,则称类A为类B的基类,类B称为类A的派生类30. 表达式operator+(x,y)还可以表示为x+y 。31 C+语言中的多态性分为编译时的多态性和运行时的多态性。 32将x+y*z中的+用成员函数重载,*用友元函数重载,应解释为x. operator+(operator*(y,z)33如果要把返回值为void的函数A声明为类B的友元函数,则应在类B的定义中加入的语句是friend void A( );34派生类的成员一般分为两部分,一部分是从基类继承的成员,另一部分是自己定义的新成员。35继承的方式有公有继承、私有继承和保护继承3种.下列程序定义了运算符重载,根据注释找出错误写出正确的语句。运算符重载#includeclass Mint a,b;public:M()a=b=0; M(int aa,int bb)a=aa,b=bb; M operator + (int x); /正确的为 (M &x);M operator - (M x); /正确的为 (M &x);void OutB()couta bendl;M operator +(M& x) /正确的为 M M:operator +(M& x)M r;r.a=a+x.a;r.b=b+x.b;return r;M M

温馨提示

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

评论

0/150

提交评论