首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序中对一维坐标点类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
66
问题
下面程序中对一维坐标点类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全国计算机二级
相关试题推荐
下列关于运算符重载的叙述中,正确的是
将下面的语句段(A)补充完整,使其和语句段(B)在功能上完全等价。(a)doubles=0.0;【】;intk=0;do{s+=d;k
有以下程序:#include<iostream>usingnamespacestd;classBase{private:inta,b;public:Base(intx,
若a是float型变量,且a=6,则表达式“a/2+(int)(a+1)%2”的值为【】。
下列程序的运行结果是#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){
下面对静态数据成员的描述中,正确的是
决定C++语言中函数的返回值类型的是
程序设计语言的基本成分是数据成分、运算成分、控制成分和
作为非成员函数重载的运算符,所有操作数都必须以______的形式出现在参数表中。
随机试题
女性,63岁,右下腹及脐周隐痛3年,渐渐清瘦,近2个月来常有低热,体格检查发现右下腹可触及一60cm×4cm大小的包块,较硬,尚可推动,压痛,锁骨上及腹股沟区来触及肿大淋巴结,结合其他检查结果,该患者被确诊为右侧结肠癌。该患者最可能同时伴有的症状是
某大学教授王某,2015年9月在本职工作之余为A单位提供咨询服务取得收入5000元,并支付给中介人500元的中介费,取得对方开具的合法票据;同月向A单位转让某项技术,取得技术转让收入3000元,然后支付给中介人500元的中介费,取得对方开具的合法票据。当月
根据外商投资企业和外国企业所得税规定,下列项目中允许税前扣除的有()。
在常用的几种班级管理模式中,源于美国管理学家德鲁克提出的管理模式是()。
学生学习是为了改变自己在班集体中的排名,这样的学习动机属于()。
你是社保部门办事大厅的负责人,在引导群众办理手续时,一些部门往往不予以配合,不但不能很好地解决群众所需,还说你给他们的工作增加了负担。面对这样的情况,请问你会如何处理?
假设在DAT为首地址的连续三个字单元中存放一个48位的数,问下面的程序段中第二条指令应填入什么助记符才能使该明位数左移一个二进制位? SAL DAT,1 ______ DAT+2,1 RCL DAT+4,1
在下列函数原型中,可以作为类从构造函数的是()。
SomepeopleusedtosaythatDadhadsomanychildrenthathecouldn’tkeeptrackofthem.Dadhimselfusedto【1】astoryabouto
Whyyoushouldn’ttrytobeamorningpersonA)We’veallhearditbefore:tobesuccessful,getoutofbedearly.Afterall,
最新回复
(
0
)