首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include <iostream> using namespace std; class Obj { static int i; public: Obj( ){i++;}
有如下程序: #include <iostream> using namespace std; class Obj { static int i; public: Obj( ){i++;}
admin
2017-10-17
40
问题
有如下程序: #include <iostream> using namespace std; class Obj { static int i; public: Obj( ){i++;} ~Obj(){i--;} static int getVal( ){ return i;} }; int Obj::i=0; void f() {Obj ob2; cout<<ob2.getVal( ); } int main( ){ Obj ob1; f(); Obj *ob3=ew Obj; cout<<ob3->getVal( ); delete ob3; cout<<Obj::getVal( ); return 0; } 程序的输出结果是
选项
A、232
B、231
C、222
D、221
答案
D
解析
本题主要考查的是静态成员。静态成员的特性是不管这个类创建了多少个对象,它的静态成员都只有一个拷贝(副本),这个副本被所有属于这个类的对象共享。本例中,Obj类定义了一个静态数据成员i,并初始化为0。在主函数中,首先定义了1个该类对象ob1,所以构造函数被执行1次,i被加1。然后调用函数f(),该函数中又定义了一个对象ob2,此时i再次加1变成2,然后通过静态成员函数getVal()输出i的值2。f()函数结束了,局部变量ob2被释放,故析构函数被调用了1次,i变成1。回到主函数中,又动态创建了1个对象并让指针ob3指向它,所以i变成2,接着输出的值为2。最后,释放动态创建的那个对象,i变为1,所以最后输出的值为1。因此,程序最终输出结果为221,应该选择D。
转载请注明原文地址:https://jikaoti.com/ti/KBt0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
设置虚基类的目的是______,通过______表示虚基类。
以下定义数组中错误的是()
下列关于运算符重载的描述中,正确的是()。
______成员函数中不能直接引用类中说明的非静态成员。
有以下程序:#include<iostream>usingnamespacestd;intmain(){inta=5,b=4,c=3,d=2;if(a>b>c)
以下程序的执行结果是()。#include<iostream.h>template<classT>classSample{Tn;Public:Sample(Ti){n=i
即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员,这说明继承具有
有如下定义:classMA{intvalue;public:MA(intn=0):value(n){}};MA*ta,tb;其中MA类的对象名标识符是______
以下选项中合法的用户标识符是
下列选项中,正确的C++标识符是
随机试题
操作系统就是MS-DOS。
板框压滤机是一种连续性的过滤设备。()
A.金黄色葡萄球菌B.草绿色链球菌C.肠球菌D.真菌E.衣原体患者男性,38岁,风心病二尖瓣置换术后2周,发热10天,疑诊人工瓣膜心内膜炎,最可能的致病菌是
GTR治疗效果最好的骨缺损是()
治寒湿中阻,常以苍术配
写出命题“两点之间,线段最短”的教学简案。(主要写教学目标,重点、难点、关键,课题引入及教学设想)
下列哪些因素是实现人的全面发展的社会历史条件?()
从五四运动到中国特色社会主义进入新时代,中华民族迎来了从站起来、富起来到强起来的伟大飞跃。这在中华民族发展史上、在人类社会发展史上都是划时代的。
城镇化带来人们生活方式的改变,带动消费需求从“吃穿用”转变到“住行学”,推动消费结构和消费方式升级。城镇化带来人力资本和信息知识聚集,促进市场竞争、技术创新和改善管理,有利于提高资源集约利用,降低工业排放,实现低碳、绿色发展。城镇化的规模效应将大幅度减少资
Skilledcomputercriminalscanbreakintoacomputersystem______.Computercriminalschooseaccumulatingfractionsofpencefr
最新回复
(
0
)