首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面程序中对一维坐标点类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
80
问题
下面程序中对一维坐标点类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是否为大写英文字母,应使用表达式
下列程序的运行结果是#include<iostream.h>classA{inta;public:A(){a=0;}A(intaa){
下列运算符中,在C++语言中不能重载的是
程序设计语言的基本成分是数据成分、运算成分、控制成分和
完成下列类的构造函数,初始化语句为【 】。#include<iostream.h>classTest{private:intx,y;public,voidTest(intinitx,intinity){_
要通过函数实现一种不太复杂的功能,并且要求加快执行速度,则应该选用
以下程序的功能是按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出: main( ) {int n, k, float score, sum, ave;
下列有关运算符重载的叙述中,正确的是()。
随机试题
A.左旋多巴B.甲磺丁脲C.卡那霉素D.水合氯醛E.灰黄霉素
患者,男,58岁,因右肺中央型肺癌行右肺切除术。术后留置胸管,目前处于夹闭状态。该患者术后留置胸管的目的是
水质参数所选择的特征参数根据()选定。
国家九部委颁布的《标准施工招标资格预审文件》的组成包括()。
首席风险官任期届满前,期货公司董事会可以随时免除其职位。()
对企业的投入与产出分析一般采用()。
《义务教育数学课程标准(2011年版)》提出,数学课程能使学生掌握必备的基础知识和基本技能;培养学生的抽象思维和推理能力;培养学生的创新意识和实践能力;促进学生在等方面的发展。
教师聘任制度应遵循()的原则。
2006年浙江省进出口顺差()亿美元。根据表格,以下说法错误的一项是()。
A.hungryB.cookC.buyD.fillE.againF.poorG.beforeprepareforeatingbyusingheat
最新回复
(
0
)