面向对象程序设计郑大网上测试 下载本文

正确 错误 5、静态数据成员不从属于任何一个具体对象,所以必须在构造函数对它初始化。 正确 错误

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

剩余时间: 59:54

第一题、单项选择题(每题1分,5道题共5分) 1、如果在类B 中定义友元,其中正确的是:

A、class B { friend int fun(A*, B&);}; C、class B { friend int fun(A&, B&);};

B、class B { friend int fun(A*, B*);}; D、class B { friend int fun(A&, B*);};

2、关于友元的说法正确的是( )

A、友元关系可以继承 C、友元关系不可以传递

B、友元关系是双向的 D、友元关系可以取消

3、将类B的成员函数int f(void)声明为类A的友元函数的语句是( )

A、class A { friend int f();} C、class A { friend class B;};

B、class A { friend int B::fun();} D、class A { friend B::fun(void);}

4、关于友元类的定义正确的说法是( )

A、如果在类B中定义友元类A ,必须先定义类A C、如果在类B中定义友元类A ,可以定义类B,后定义类A,但是必须在类B的定义之前,对类A向前引用说明

B、如果在类B中定义友元类A ,必须先定义类B

D、类A是类B的友元,类A 和类B 的定义顺序没有先后之分

5、一个类的友元函数或友元类能够通过成员操作符访问该类的( )

A、私有成员 C、公有成员

B、保护成员 D、所有成员

第二题、多项选择题(每题2分,5道题共10分) 1、定义类B的构造函数为类A的友元函数的语句是( )

A、class A { friend B();}; B、class A { friend B::B();}; C、class A { friend void B::B();}; D、class A { friend double B::B();};

2、如果函数int f(int, int)是类A的友元,那么下面的说法正确的是( )bcd ab bc bd b a

C,D,ABD

A、int f(int, int)可以访问A的私有成员

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、一个函数可以是多个类的友元函数。 正确 错误