习 题 二
一、填空题
1. 对运算符进行重载时,不能  改变结合性  ,不能  改变操作数个数  ,不能  改变优先级 
2. 当++被重载为后置成员函数时需要    0  个参数。
3. 当++被重载为前置成员函数时需要    1  个参数。
4. 在C++中,运算符重载函数可以是    成员函数    ,也可以是    友元函数    ,还可以是  普通函数 
5. 友元破坏了类的  封装性  特性。
6. 类的友元能够访问这个类的  所有  成员。
7. 类的静态数据成员的初始化是在析构函数的定义  类外  进行的。
8. 类的静态成员函数  没有  this指针。
9. 类的静态成员函数访问该类的非静态成员可以通过  参数传递对象 来实现。
10. 不能被重载的类成员函数是  构造和析构函数       
二、选择题
1. 已知类A有一个带double型参数的构造函数,且将运算符“+”重载为该类友元函数,若如下语句:A  x(2.5),y(3.6),z(0);    z=x+y;    能够正常运行,运算符重载函数operator+ 应在类中声明为(  D  )。
A. friend A operator+ (double , double) ;        B. friend A operator+ ( double , A &);
C. friend A operator+ ( A &, double);            D. friend A operator+ ( A & , A &);
2. 下列关于运算符重载的描述中,正确的是( D )。
A. 运算符重载可以改变操作数的个数        B. 运算符重载可以改变优先级
C. 运算符重载可以改变结合性              D. 运算符重载不可以改变语法结构
3. 友元运算符表达式obj1>obj2被C++编译器解释为( A )。
A. operator>(obj1,obj2)                      B. >(obj1,obj2)
C. obj2.operator>(obj1)                      D. obj1.operator>(obj2)
4. 下列关于C++运算符函数的返回类型的描述中,错误的是( C )。
A. 可以是类类型                          B. 可以是int类型
C. 可以是void类型                        D. 可以是float类型
5. 为了区别单目运算符的前置和后置运算,在后置运算符进行重载时,额外添加一个参数,其类型是(  D  )。
A. void                  B. char                  C. float                  D. int
6. 以下运算符中,不能在C++中重载的是(  A  )。
A. ?:                  B. +                  C. -                  D. <=
7. 在一个类中可以对一个操作符进行( D )重载。
A. 1种                B. 2种以下          C. 3种以下          D. 多种
8. 若类A被说明成类B的友元,则( D )。
A. 类A的成员即类B的成员                B. 类B的成员即类A的成员
C. 类A的成员函数不能访问类B的成员      D. 类B不一定是类A的友元
9. 友元的作用是( A )。
A. 提高成员的运行效率                    B. 加强类的封装性
C. 实现数据的隐藏性                      D. 增加成员函数的种类
10. 下列关于静态数据成员的特性描述中错误的是( D )。
A. 说明静态数据成员时前边要加static        B. 静态数据成员要在类体外进行初始化
C. 引用静态数据成员时,要在静态数据成员名前加“类名”和作用域运算符
D. 静态数据成员不是所有对象所共用的
11. 关于友元的描述中,正确的是( C )。
A. 友元函数是成员函数的一种,它可以访问类的私有成员
B. 友元函数不能提高程序的运行效率
C. 友元函数要在类体内说明
D. 友元函数增强了类的封装性和隐藏性
12. 用来说明类的友元的是( D )。
A. private            B. protected          C. public            D. friend
13. 已知f1和f2是同一个类的两个成员函数,但f1不能调用f2,下列选项中符合要求的是( B )。
A. f1和f2都是静态函数                  B. f1是静态函数,f2不是静态函数
C. f1不是静态函数,f2是静态函数        D. f1和f2都不是静态函数
14. 下面对于友元函数描述正确的是( C )。
A. 友元函数的实现必须在类的内部定义    B. 友元函数是类的成员函数
C. 友元函数破坏了类的封装性和隐藏性    D. 友元函数不能访问类的保护成员
15. 一个类的友元函数或友元类能够通过成员操作符访问该类的( D )
A. 私有成员        B. 保护成员        C. 公有成员          D. 所有成员
16. 下面对静态数据成员的描述中,正确的是( D )
A. 静态数据成员可以在类体内进行初始化  B. 静态数据成员不可以被类的对象调用
C. 静态数据成员不受private控制符的限制  D. 静态数据成员可以直接用类名调用
17. C++语言中提供的( B )不是类的成员,但具有类成员的特权。
A. 构造函数        B. 友元函数        C. 虚函数            D. 重载函数

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。