面向对象程序设计郑大网上测试(3)

2019-03-06 08:04

B、int f(void)是int f(int, int)的重载函数 C、int f(void)可以访问A的私有成员 D、int f()不是类A的友元函数

3、关于友元的描述中正确的是( )

A、友元函数可以访问该类的私有数据成员

B、一个类的友元类中的成员函数都是这个类的友元函数 C、友元可以提高程序的运行效率 D、类和类之间的友元关系可以继承

4、若B类为A类的友元类,则下面的说法错误的是( )

A、B类的所有成员函数都是A类的友元函数 B、B类指定的成员函数才是A类的友元 C、A类的所有成员函数可以访问B类的成员 D、B类的私有成员函数不能可以访问A类的私有成员

5、友元函数在类中的定义位置是( )

A、只能在public区 B、可以在任意区域 C、只能在protected区 D、只要在类中就可以

第三题、判断题(每题1分,5道题共5分)

1、友元只能访问类中的公有成员,不能访问私有成员。

正确

错误

2、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。

正确

错误

3、友元类是使用friend关键字声明的类,它的所有成员函数都是相应类的友元函数。

正确

错误

4、如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。 正确 错误 5、一个函数可以是多个类的友元函数。 正确 错误

《面向对象程序设计》第05章在线测试

《面向对象程序设计》第05章在线测试

剩余时间:5 9:53

第一题、单项选择题(每题1分,5道题共5分)

1、为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正确的是()

B、class Complex { Complex operator+(Complex &);}

C、class Complex { Complex operator+(Complex, Complex);}

A、class Complex { Complex operator+();}

D、Complex operator+(Complex &);

2、如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator==(b) C、operator==(a,b)

B、b.operator==(a) D、operator==(b,a)

3、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator++(1) C、operator++(a,1)

B、operator++(a) D、a.operator++()

4、假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如“m1=m2=m3;”。重载操作符=的函数原型最好是( )。

A、int operaotor=(M); C、M operator=(M&);

B、int operator=(M&); D、M& operator=(M);

5、下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是( )。

A、Value operator+(Value, Value); C、Value &operator+(Value, Value);

B、Value operator+(Value,int); D、Value &operator+(Value&, Value&);

第二题、多项选择题(每题2分,5道题共10分) 1、下面运算符不能重载的是( )

A、<< B、:: C、. D、,

2、关于运算符重载,下列说法错误的是( )。

A、所有的运算符都可以重载。

B、通过重载,可以使运算符应用于自定义的数据类型。 C、通过重载,可以创造原来没有的运算符。 D、通过重载,可以改变运算符的优先级。

3、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符不可能是( )。

A、作为友元函数重载的1元运算符 B、作为成员函数重载的1元运算符 C、作为友元函数重载的2元运算符 D、作为成员函数重载的2元运算符

4、类A中重载运算符new为成员函数的定义如下: void * operator new ( size_t size, int x, int y){?} 则使用重载new的方法错误的是:( )

A、new A;

B、new (1,2,3); C、new (1,2,3)A; D、new A (1,2,3);

5、重载del_ete运算符的格式错误的是( )

A、void * operator del_ete(void*); B、void * operator del_ete(void*,参数表); C、void * operator del_ete(参数表); D、void * operator del_ete();

第三题、判断题(每题1分,5道题共5分)

1、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。

正确

错误

2、单目运算符->只能被重载为成员函数。

正确

错误

3、双目运算符重载为成员函数的时候,一个运算对象由this指针给出,另一个运算对象通过重载运算符的形参传递。

正确 错误 4、双目运算符op重载为A类的成员函数后,表达式“ obj1 op obj2”可以解释为:operator op(obj1,obj2)。 正确 错误 5、重载=运算符没有实际意义,因为系统会为每一个类自动生成赋值运算符。 正确 错误


面向对象程序设计郑大网上测试(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2007-2008六下英语毕业模拟题 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: