C++给学生习题第7章练习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章练习题
同步练习
一、选择题
1.在下列运算符中,不能重载的是()。
(A)! (B)sizeof (C)new (D)delete
2.在下列关于运算符重载的描述中,()是正确的。
(A)可以改变参与运算的操作数个数(B)可以改变运算符原来的优先级
(C)可以改变运算符原来的结合性(D)不能改变原运算符的语义
3.运算符函数是一种特殊的()或友元函数。
(A)构造函数(B)析构函数(C)成员函数(D)重载函数
4.设op表示要重载的运算符,那么重载运算符的函数名是()。
(A)operator op (B)op (C)函数标识符(D)函数标识符op
5.用于类运算的运算符通常都要重载。但有两个运算符系统提供默认重载版本,它们是()。
(A)->和. (B)++和--(C)=和& (D)new和delete 【解答】 B D C A C
同步练习
一、选择题
1.在下列函数中,不能重载运算符的函数是()。
(A)成员函数(B)构造函数(C)普通函数(D)友元函数
2.在下列运算符中,要求用成员函数重载的运算符是()。
(A)= (B)== (C)<= (D)++
3.在下列运算符中,要求用友元函数重载的运算符是()。
(A)= (B)[] (C)<< (D)()
4.如果希望运算符的操作数(尤其是第一个操作数)有隐式转换,则重载运算符时必须用()。
(A)构造函数(B)析构函数(C)成员函数(D)友元函数
5.当一元运算符的操作数,或者二元运算符的左操作数是该类的一个对象时,重载运算符函数一般定义为()。
(A)构造函数(B)析构函数(C)成员函数(D)友元函数【解答】 B A C D C
二、程序练习
1.阅读程序,写出运行结果。
#include
using namespace std;
class T
{ public :
T() { a = 0; b = 0; c = 0; }
T( int i, int j, int k ) { a = i; b =j; c = k; }
void get( int &i, int &j, int &k ) { i = a; j = b; k = c; }
T operator* ( T obj );
private:
int a, b, c;
};
T T::operator* ( T obj )
{ T tempobj;
= a * ;
= b * ;
= c * ;
return tempobj;
}
int main()
{ T obj1( 1,2,3 ), obj2( 5,5,5 ), obj3;
int a, b, c;
obj3 = obj1 * obj2;
( a, b, c );
cout<<"( obj1*obj2 ): " <<"a = "< (obj2*obj3).get( a, b, c );