首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序中对一维坐标点类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
62
问题
下面程序中对一维坐标点类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://jikaoti.com/ti/fIt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
以下程序执行后的输出结果是#include<iostream>usingnamespacestd;voidtry(int,int,int,int);intmain(){intx,y,z,r;
当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
下列运算符中,在C++语言中不能重载的是
下列程序的执行结果为#include<iostream.h>voidmain(){inta=3,b=0;int*p=&a;b=+a++;cout<<*
下列叙述中,不属于软件需求规格说明书的作用的是
软件生命周期包括八个阶段。为使各时期的任务更明确,又可以分为以下三个时期:软件定义期,软件开发期,软件维护期。编码和测试属于【 】期。
下列不能作为类的成员的是
有如下程序 main( ) {int n[5]={0,0,0},i, k=2; for(i=0 i<k i++)n[i]=n[i]+1; cout<<n[k]<<end1;
以下程序的运行结果是______。#include<iostream.h>#include<math.h>template<classT>classTAdd//定义类模板TAdd,T为类型{Tx,y;
随机试题
Thenumbernisbetween2and8,inclusive,onthenumberlinemeanswhichofthefollowing?
2005年以后,以胡锦涛为总书记的党中央提出了对台工作的一系列新的重大决策和部署,其中,强调和平统一工作要体现【】
A.搏出量B.心输出量C.射血分数D.静息心指数E.搏功在心室扩大、泵血功能减退早期宜选用的评定指标是
某孕妇,30岁。孕36周,来院做常规妇科复查,必查的项目是
A.腺病毒肺炎B.支原体肺炎C.金黄色葡萄球菌肺炎D.支气管肺炎E.毛细支气管炎婴儿多见,以喘息为突出表现的是
适宜于炒焦的药物有
关于FIDIC合同中指定分包商的说法,正确的是()
对于WISC-CR中有时间限制的项目,是以反应的()作为评分的依据。
ISO
设二维随机变量(X,Y)服从二维正态分布,且E(X)=E(Y)=0,D(X)=16,D(Y)=25,cov(X,Y)=12,求(X,Y)的概率密度.
最新回复
(
0
)