答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 6.4 1. 若class B中定义了一个class A的类成员A a,则关于类成员的正确描述是()。 (A)在类B的成员函数中可以访问A类的私有数据成员 (B)在类B的成员函数中可以访问A类的保护数据成员 (C)类B的构造函数可以调用类A的构造函数做数据成员初始化 (D)类A的构造函数可以调用类B的构造函数做数据成员初始化 答题: A. B. C. D. (已提交) 参考答案:C 问题解析: 2. 下列关于类的包含描述正确的是()。 (A) 可以使用赋值语句对对象成员进行初始化 (B) 可以使用“参数初始式”调用成员类的构造函数初始化对象成员 (C) 被包含类可以访问包含类的成员 (D)首先执行自身构造函数,再调用成员类的构造函数 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 7.1 1. 在下列运算符中,不能重载的是()。 (A) ! (B)sizeof (C)new (D)delete 答题: A. B. C. D. (已提交) 2. 在下列关于运算符重载的描述中,()是正确的。 (A)可以改变参与运算的操作数个数 (B)可以改变运算符原来的优先级 (C)可以改变运算符原来的结合性 (D)不能改变原运算符的语义 答题: A. B. C. D. (已提交) 3. 运算符函数是一种特殊的()或友元函数。 (A)构造函数(B)析构函数(C)成员函数(D)重载函数 答题: A. B. C. D. (已提交) 4. 设op表示要重载的运算符,那么重载运算符的函数名是:()。 (A)operator op (B) op(C)函数标识符(D)函数标识符op 答题: A. B. C. D. (已提交) 5. 用于类运算的运算符通常都要重载。但有两个运算符系统提供默认重载版本,它们是()。 (A)->和. (B)++ 和 -- (C) = 和&(D)new和delete 答题: A. B. C. D. (已提交) 7.2
1. 在下列函数中,不能重载运算符的函数是()。
(A)成员函数 (B)构造函数 (C)普通函数 (D)友元函数 答题:
A.
B.
C.
D. (已提交)
参考答案:B 问题解析:
2. 在下列运算符中,要求用成员函数重载的运算符是()。 (A)= (B)== (C)<= (D)++ 答题:
A.
B.
C.
D. (已提交)
参考答案:A 问题解析:
3. 在下列运算符中,要求用友元函数重载的运算符是()。 (A)= (B)[] (C)<< (D)() 答题:
A.
B.
C.
D. (已提交)
参考答案:C 问题解析:
4. 如果希望运算符的操作数(尤其是第一个操作数)有隐式转换,则重载运算符时必须用()。 (A)构造函数(B)析构函数 (C)成员函数(D)友元函数 答题:
A.
B.
C.
D. (已提交)
参考答案:D 问题解析:
5. 当一元运算符的操作数,或者二元运算符的左操作数是该类的一个对象时,重载运算符函数一般定义为()。
(A)构造函数(B)析构函数 (C)成员函数(D)友元函数 答题:
A.
B.
C.
D. (已提交)
参考答案:C 问题解析:
7.3
1. 设有类A的对象Aobject,若用成员函数重载前置自增表达式,那么++Aobject被编译器解释为()。
(A)Aobject.operator++() (B)operator++(Aobject) (C)++(Aobject) (D)Aobject :: operator++() 答题:
A.
B.
C.
D. (已提交)
参考答案:A 问题解析:
2. 运算符++,=,+和[]中,只能用成员函数重载的运算符是()。 (A)+和= (B)[]和后置++ (C)=和[] (D)前置++和[] 答题:
A.
B.
C.
D. (已提交)
参考答案:C 问题解析:
3. 在C++中,如果在类中重载了函数调用运算符(),那么重载函数调用的一般形式为: ()。
(A)(表达式)对象 (B)(表达式表)对象 (C)对象(表达式) (D)对象(表达式表) 答题:
A.
B.
C.
D. (已提交)
参考答案:D 问题解析:
4. 设有类A的对象Aobject,若用友员函数重载后置自减表达式,那么Aobject--被编译器解释为()。
(A)Aobject.operator--() (B)operator--(Aobject,0) (C)--(Aobject,0) (D)--(Aobject,0) 答题:
A.
B.
C.
D. (已提交)
参考答案:B 问题解析:
5. 如果表达式++j*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可以表示为()。
(A)operator*(j.operator++(),k) (B)operator*(operator++(j),k) (C)operator++(j).operator*(k) (D)operator*(operator++(j),)
答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 6. 如果类A要重载插入运算符“<<”,那么重载函数参数表的形式一般定义为()。 (A)(constA&) (B)(ostream&) (C)(constA&,ostream&) (D)(ostream&,constA&) 答题: A. B. C. D. (已提交) 参考答案:D 问题解析: 7.4
1. 类型转换函数只能定义为一个类的()。
(A)构造函数 (B)析构函数 (C)成员函数 (D)友员函数 答题:
A.
B.
C.
D. (已提交)
参考答案:C 问题解析:
2. 具有一个非默认参数的构造函数一般用于实现从()的转换。 (A)该类类型到参数类型 (B)参数类型到该类类型 (C)参数类型到基本类型 (D)类类型到基本类型 答题:
A.
B.
C.
D. (已提交)
参考答案:B 问题解析:
3. 假设ClassX是类类型标识符,Type为类型标识符,可以是基本类型或类类型,Type_Value为Type类型的表达式,那么,类型转换函数的形式为()。 (A)ClassX :: operator Type(Type t){… return Type_Value;} (B)friendClassX :: operator Type(){… return Type_Value;} (C)Type ClassX :: operator Type(){…return Type_Value;} (D)ClassX :: operator Type(){… return Type_Value;} 答题:
A.
B.
C.
D. (已提交)
参考答案:D 问题解析:
4. 在下列关于类型转换的描述中,错误的是()。 (A)任何形式的构造函数都可以实现数据类型转换。
(B)带非默认参数的构造函数可以把基本类型数据转换成类类型对象。
(C)类型转换函数可以把类类型对象转换为其他指定类型对象。 (D)类型转换函数只能定义为一个类的成员函数,不能定义为类的友元函数。 答题: A. B. C. D. (已提交) 参考答案:A 问题解析: 5. C ++中利用构造函数进行类类型转换时的构造函数形式为()。 (A)类名::类名(arg); (B)类名::类名(arg,arg1=E1,…,agrn=En); (C)~类名(arg); (D)~类名(arg,arg1=E1,…,agrn=En); 答题: A. B. C. D. (已提交) 参考答案:B 问题解析: 8.1
1. 一个大的应用程序,通常由多个类构成,类与类之间互相协同工作, 它们之间有三种主要关系。下列不属于类之间关系的是( )。
(A) gets-a (B) has-a (C) uses-a (D) is-a 答题:
A.
B.
C.
D. (已提交)
参考答案:A 问题解析:
2. 在c++中,类之间的继承关系具有()。
(A) 自反性 (B) 对称性 (C) 传递性 (D) 反对称性 答题:
A.
B.
C.
D. (已提交)
参考答案:C 问题解析:
3. 下列关于类之间关系的描述,正确的是( )。
(A) has-a表示一个类部分地使用另一个类(B) uses-a表示类的包含关系 (C)is-a关系具有对称性。 (D) is-a机制称为“继承” 答题:
A.
B.
C.
D. (已提交)
参考答案:D 问题解析:
4. 下列关于类的描述,正确的是( )。
(A)父类具有子类的特征 (B) 一个类只能从一个类继承 (C) is-a 关系具有传递性 (D) uses-a表示类的继承机制 答题:
A.
B.
C.
D. (已提交)