首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序中对一维坐标点类Point进行运算符重载 #include <iostream> using namespace std; class Point { public: Point(int val) {x=val;}
下面程序中对一维坐标点类Point进行运算符重载 #include <iostream> using namespace std; class Point { public: Point(int val) {x=val;}
admin
2017-10-17
75
问题
下面程序中对一维坐标点类Point进行运算符重载 #include <iostream> using namespace std; class Point { public: Point(int val) {x=val;} Point & operator++() {x++; return *this; } Point operator++(int) {Point old = *this; ++(*this); return old;} int GetX() const {return x;} private: int x; }; int main() { Point a(10); cout << (++a).GetX(); cout << a++.GetX(); return 0; }编译和运行情况是
选项
A、运行时输出1011
B、运行时输出1111
C、运行时输出1112
D、编译有错
答案
B
解析
本题考查的知识点是:重载增1运算符“++”。++既可以是前缀运算符(前增1),又可以是后缀运算符(后增1)。为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:重载后缀++时必须多一个虚拟参数:int。在本题中,Point& operator++()重载的是前缀形式,而Point operator++(int)则是后缀形式。所以,主函数中第1条输出语句cout<<(++a).GetX();等价于cout<<a.operator++().GetX();,即输出 11,此时a.x的值为11。而第2条输出语句cout<<a++.GetX();等价于cout<< a.operator++(0).GetX();(式中的0可以是任意整数),在这个后缀++的重载函数中,首先创建了一个Point对象old保存自身(*this),然后通过语句++(*this];调用前缀++的重载函数,此时自身虽然已经改变,但它返回的是改变前保存的old对象,因此还是输出11。故本题应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/RWAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
判断字符型变量ch是否为大写英文字母,应使用表达式
当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
下列运算符中,在C++语言中不能重载的是
下列程序的输出结果为#include<iostream.h>voidmain(){char*a[]={"hello","the","world"};char**pa=a;
下列程序的执行结果为#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<*
下列叙述中,不属于软件需求规格说明书的作用的是
程序设计语言的基本成分是数据成分、运算成分、控制成分和
下列不能作为类的成员的是
类内部定义的______和______数据不能被不属于该类的成员函数来存取,定义为______的数据,可以在类外部进行存取。
在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是,
随机试题
自耻骨联合下缘到骶岬上缘中点的距离是
可用拇指、示指取物的年龄为
对于安全文明施工费的预付,发包人应在工程开工后28天内预付不低于当年施工进度计划的安全文明施工费总额的()。
事故调查处理应当按照( )的原则,及时、准确地查清事故原因、查明事故性质和责任,总结事故教训,提出整改措施,并对事故责任者提出处理意见。
下述有关人民检察院的拘留权的说法,正确的是()。
创造财富固然是人的价值体现,而节约自律又何尝不是人性光辉的显现。对于每个人来说,反对铺张浪费人人都能做到,贵在自觉坚持。就拿“光盘行动”来说,点菜时手稍微紧一点,吃自助的时候多次少取,都能避免浪费。倘若人人都能强化这个意识,就能互相提醒,形成勤俭节约的共识
1,,,,()。
甲、乙、丙共同投资成立一企业,甲、乙对该企业债务承担无限连带责任,丙以其认缴的出资额为限对该企业债务承担责任。该企业属于()。
软件维护是软件生命周期的重要组成,而影响维护的因素较多,除了人员因素、技术因素和管理因素外,还有程序自身的因素,具体影响因素可归纳为:1)软件系统的规模;2)软件系统的年龄;3)软件系统的结构。试回答以下问题:1.给出上述三项因素的解释,阐述“规
Software(ofcomputers),isalsocalledcomputerprograms,whichreferstoinstructionsthatcausethehardware—themachines—to
最新回复
(
0
)