重庆大学2018秋C++程序设计语言 ( 第2次 )

发布时间:2023-08-12 00:08:53浏览次数:44
第 2 次作业一、单项选择题(本大题共 50 分,共 20 小题,每小题 2.5 分)类  从类  派生而来,下面( )可以在类  的构造函数中调用基类  的构造函数class A : public B {public: A(int i):B(i){};}class A : public B {public: A(int i):B(int i){};}的函数有函数头和函数体两部分组成,下面所列的函数头书写格式中不正确的是( )。=下列存取控制符中,( )能够限定类外代码不能访问被它修饰的成员。 !"!!#  "#=>~A(){}二、判断题(本大题共 50 分,共 20 小题,每小题 2.5 分)在类内部定义的  ! 和 "!!# 的数据成员不能被类外代码访问,定义  的数据成员可以被类外代码访问。嵌套的异常抛出后,捕获异常的 ' 语句块不管是内层还是外层,都是同时判断是够满足异常的类型,然后再决定哪个 ' 语句块处理异常。在类模板设计中,不能重载()操作符,也就是不能用函数对象。$相比于数组,AB4 容器的大小是可以自动变化的。&静态数据成员并不是对象的属性,而是整个类的属性,所以它又称为类属性。+C# 函数在对容器元素操作时,会修改容器中元素的值。,D!" 通过 'EF 函数添加元素到容器中,那么容器的 G! 会增加。- "#%表示的是函数 % 在程序运行中不会抛出任何异常。.常数据成员只针对对象成员,不针对基本数据类型成员。也就是说基本数据类型不能作为常数据成员。为了消除多重继承带来的二义性问题,除了使用作用域限定符之外,还可以使用虚基类的方式。重载多态包括了函数重载和运算符重载。虚函数不能被子孙类传递,也就是说基类如果有虚函数,它的直接派生类也具有这个同名的虚函数,但是间接派生类就不具有。使用公有继承来生成派生类时,基类的公有成员在派生类中以保护成员的方式存在。$如果析构函数是纯虚函数,那么它必须被实现,因为派生类的析构函数需要调用它。&如果基类的析构函数定义为虚函数,那么这个基类的所有子孙类的析构函数都将是虚函数+使用保护继承来生成派生类时,基类的保护成员在派生类中以私有成员的方式存在。,如果虚基类的构造函数在其子孙类的构造函数中被多次调用,并不是每一次调用都会发生,而只有最远派生类中的调用会发生。-使用私有继承来生成派生类时,基类的公有成员在派生类中以私有成员的方式存在。.任何可以被重载的运算符,都可以被重载为类的成员函数或非成员函数。 采用哪种方式由编码人员自行确定。运算符的重载从本质上来看仍然是函数重载,编译器会将使用运算符的表达式翻译成函数调用。答案:一、单项选择题(50 分,共 20 题,每小题 2.5 分)$&+,-.$&+,-.二、判断题(50 分,共 20 题,每小题 2.5 分)HII$H&H+I,I-I.IHHII$H&H+I,H-H.IH  ! 和 "!!# 都可以$下列( )能够正确地申明友元函数,让函数 % 能够访问类  的私有成员。void fun() friend class A;Friend class A{private: int i; void fun();};class A{private: int i; friend fun();};class A{private: int i; friend void fun();};&类  的定义代码如下: '()!*'() !下列代码中,( )能够正确申明类  的常对象,并给  成员赋初值。 const A a; a.setI(1);const A a(1);"!*" +下列关于类的定义中正确的是( )。,下列关于派生类在生成时所经历的三个阶段的描述中,错误的是( )。派生类可以定义与基类同名的成员函数,如果参数不一样,那么可以和基类的成员函数一起成为重载函数。派生类首先应该吸收从基类继承而来的成员变量和成员函数派生类可以根据自己的需要,重写基类的成员函数派生类也可以有自己特有的成员变量和成员函数-如果类  有成员函数 %;类  和类  使用虚基类的方式从类  公有派生,并且类  和类  并没有重写 % 函数;类  是从类  和类  公有继承而来,也 没有重写 % 函数。那么下面的代码中,( )能够正确调用 % 函数。D d; d.fun();##%##%以上三个都可以.下面程序的运行结果是( )。 /#!/#!0!!#'1233123456738'!121212"9994445674567下面程序的运行结果是( )。 /#!/#!0!!#03:;<33$30!# %"999$$:;<$:;<$:;<下列关于静态成员函数的说法中,错误的是( )。静态成员函数只能访问类的静态数据成员静态成员函数也可以通过形参的方式操作类的对象,但最好不要这样处理,因为静态成员函数只处理与类属性有关的操作更加容易理解。静态成员函数可以访问类的非静态成员函数虽然可以采用“对象.静态成员函数”的方式访问静态成员函数,但是仍然推荐使用“类名::静态成员函数”的方式。下列程序代码运行后的输出是( )。 /#!0!!# !=">=>>>'()== "#'"8"99=993399>99!# "# '"81,02,11,21,(随机数)下列关于使用对象引用的意义的说法中,正确的是( )。对象引用只是给对象另外取一个别名,以防止在某些局部作用域内出现同名的情况。对象引用的意义在于取代对象指针,因为它一旦被赋值就不能被更改,可以防止由于指针指向不断变化而带来的逻辑错误。使用对象引用,可以为对象取个别名,这样的意义在于可以防止对象的属性被修改,可以让对象成为只读的常对象。使用对象引用作为函数形参时,可以节省实际参数对象赋值给形式参数对象时消耗的 CPU时间和内存空间。 $有如下代码定义一个对象和对象指针,以下( )能够将这个指针指向对象。 7"??ptr=(p1,2);@&当成员函数的参数名 = 与类的成员变量 = 同名时,下列语句正确的是( )。=='=='()==?'==+下列说法正确的是( ) 编译器构建的默认构造函数是浅拷贝编译器构建的默认构造函数是深拷贝深拷贝不需要递归处理到对象成员深拷贝只需要递归处理到对象成员的第二个层次就够了,没必要继续递归,下列的代码运行时不会发生拷贝构造函数调用的是( )。7"7"7"7"void printPoint(Point p){……}Point createPoint(){Point p; …… return p;}-下列程序代码的输出是( ) /#!0!!# !="!="! "#'"8"!"99"!99!#"! "#'"8"! $.类  是类  的基类,下面( )项表示的代码执行完成后,不能够正确调用 类的析构函数。B *p=new B(); delete p;?!8#!!!?@下列关于类  的构造函数的定义中,正确的是( )。A(int b,c){x=b;y=c;}
文档格式: docx,价格: 5下载文档
返回顶部