云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > C++清考资料运算符重载

C++清考资料运算符重载

  • 62 次阅读
  • 3 次下载
  • 2025/7/13 12:35:05

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。共 3题 )

1. 下列运算符中,在C++语言中不能重载的是( )。 a. * b. >= c. :: d. /

2. 下列关于运算符重载的叙述中,正确的是( )。 a. 通过运算符重载,可以定义新的运算符 b. 有的运算符只能作为成员函数重载

c. 若重载运算符+,则相应的运算符函数名是+ d. 重载一个二元运算符时,必须声明两个形参

3. 下面关于运算符重载的描述错误的是( )。

a. 运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构

b. 不是所有的运算符都可以进行重载

c. 运算符重载函数的调用必须使用关键字operator d. 在C++语言中不可通过运算符重载创造出新的运算符

二、分析以下程序的执行结果 #include class Sample { int n; public: Sample(){} Sample(int i){n=i;} Sample &operator =(Sample); void disp(){cout<<\};

Sample &Sample::operator=(Sample s) { Sample::n=s.n; return *this; }

void main() { Sample s1(10),s2; s2=s1; s2.disp();

}

三、程序设计题

设计一个点类Point,实现点对象之间的各种运算。已经给出Point类的完整声明,要求对Point类中未定义的成员函数在类外进行定义,并设计一个主函数,测试Point类,并给出主函数的输出。

Point类提供了6个运算符重载函数(参加程序中的代码和注释),以实现相应的运算。

#include class Point { int x,y; public: Point(){x=y=0;} Point(int i,int j){x=i;y=j;} Point(Point &); ~Point(){} void offset(int,int); // 提供对点的偏移 void offset(Point); // 重载,偏移量用Point类对象表示 bool operator==(Point); // 运算符重载,判断两个对象是否相同 bool operator!=(Point); // 运算符重载,判断两个对象是否不相同 void operator+=(Point); // 运算符重载,将两个点对象相加 void operator-=(Point); // 运算符重载,将两个点对象相减 Point operator+(Point );// 运 算符重 载,相加并将结果放在左操作数中 Point operator-(Point); // 运算符重载,相减并将结果放在左操作数中 int getx(){return x;} int gety(){return y;} void disp() { cout<<\ } };

参考答案:

一、单项选择题 1-3 c b c 二、

n=10 三、

Point::Point(Point &p) { x=p.x; y=p.y; }

void Point::offset(int i,int j) { x+=i; y+=j; }

void Point::offset(Point p) { x+=p.getx(); y+=p.gety(); }

bool Point::operator==(Point p) { if(x==p.getx()&&y==p.gety()) return 1; else return 0; }

bool Point::operator!=(Point p) { if(x!=p.getx()||y!=p.gety()) return 1; else return 0; }

void Point::operator+=(Point p) { x+=p.getx(); y+=p.gety(); }

void Point::operator-=(Point p) { x-=p.getx(); y-=p.gety(); }

Point Point::operator+(Point p) { this->x+=p.x; this->y+=p.y; return *this; }

Point Point::operator-(Point p)

{ this->x-=p.x;this->y-=p.y; return *this; }

void main() { Point p1(2,3),p2(3,4),p3(p2); cout<<\ p3.offset(10,10); cout<<\ cout<<\ cout<<\ p3+=p1; cout<<\ p3-=p2; cout<<\ p3=p1+p3; // 先将p1+p3的结果放在p1中,然后赋给p3,所以p1=p3 cout<<\ p3=p1-p2; cout<<\}

本程序的执行结果如下: 1:(3,4) 2:(13,14) 3:0 4:1

5:(15,17) 6:(12,13) 7:(14,16) 8:(11,12)

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。共 4题 )

1.下面几个运算符在C++中不能被重载的是( )。 a. != b. ||

c. sizeof d. &

搜索更多关于: C++清考资料运算符重载 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

一、单项选择题 ( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。共 3题 ) 1. 下列运算符中,在C++语言中不能重载的是( )。 a. * b. >= c. :: d. / 2. 下列关于运算符重载的叙述中,正确的是( )。 a. 通过运算符重载,可以定义新的运算符 b. 有的运算符只能作为成员函数重载 c. 若重载运算符+,则相应的运算符函数名是+ d. 重载一个二元运算符时,必须声明两个形参 3. 下面关于运算符重载的描述错误的是( )。 a. 运算符重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构 b. 不是所有的运算符都可以进行重载 c. 运算符重载函数的调用必须使用关键字operator d. 在C+

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com