首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序中对一维坐标点类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
76
问题
下面程序中对一维坐标点类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全国计算机二级
相关试题推荐
有以下程序:classDate{public:Date(inty,intm,intd);{year=y;month=m;d
已知:intn=10;那么下列语句中错误的是
模板函数的真正代码是在()时候产生。
将下面的语句段(A)补充完整,使其和语句段(B)在功能上完全等价。(a)doubles=0.0;【】;intk=0;do{s+=d;k
下面对静态数据成员的描述中,正确的是
下列程序的输出结果为#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<<*
根据下面的主程序,完成类的一种构造函数的最简单形式。#include<iostream.h>classbase{private:intnum;public:【 】;};voidmain(){basetry
要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用
随机试题
患者,女性,27岁。初产妇,乳腺炎入院4天,家中有一哺乳期幼儿,经常哭泣,她的主要需要是
关于乳房假体隆乳术描述正确的是
如图9-3所示,非周期信号的时域描述形式为()。
湿拌砂浆不包括()。
随着新课程改革的深入,教师要走出封闭、狭隘和垄断的阴影,在新的课程环境下重塑自己并界定角色职能。结合自己的教学实际,谈谈新课程改革中教师角色将发生哪些转变?
Itisnotforbiddentodreamofbuildingabetterworld,whichisbyandlargewhatthesocialsciencestrytohelpustodo.Ho
-1/8
Comparisonsweredrawnbetweenthedevelopmentoftelevisioninthe20thcenturyandthediffusionofprintinginthe15thand1
【B1】【B7】
Morethanacenturyafteritsdiscovery,Alzheimer’sdisease(老年痴呆症)isstilldestroyingpeople’sbrains.Buttheresearchmayoff
最新回复
(
0
)