首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
55
问题
有如下程序: #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://kaotiyun.com/show/XPAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下面描述中体现了抽象类特性的语句是
一个类的友元函数能够访问该类的
下列叙述中正确的是
下面对静态数据成员的描述中,正确的是()
下列字符串常量表示中,()是错误的。
如果一个对象部分地包含自己,或自己定义自己,则称这个对象是【 】的对象。
不是面向对象系统包含的要素的是( )。
已知一个函数模板定义为:template<typenameT1,typenameT2>T1FUN(T2n){returnn*5.0;}若要求以int型数据7为函数实参调用该模板函数,并返回一个double型数据,则该调用
随机试题
2005年中国开始全面放开()
患者,女,36岁。出现腰骶部疼痛,呈持续性或间歇性,劳累后加重,休息后减轻。临床怀疑椎弓峡部断裂。为诊断椎弓峡部断裂,正确的摄影体位是
关于油脂性基质的错误表述为
招标人根据工程实际情况需要修改合同条款的内容,可以在()进行修改。
信息管理指的是( )的合理组织和控制。
(凡要求计算的项目,均需列出计算过程;计算结果出现小数的,均保留小数点后两位。)甲股份有限公司(以下简称甲公司)是一家上市公司,增值税税率为17%,2006年至2010年对乞股份有限公司(以下简称乙公司)投资业务的有关资料如下:(1)2006年11月1
红细胞是血液中数量最多的一种血细胞,它在人体中的主要作用是:
(1)在考生文件夹下打开EXCEL.XLS文件,将Sheetl工作表的A1:F1单元格合并为—个单元格,内容水平居中;计算“总积分”列的内容(金牌获10分,银牌获7分,铜牌获3分),按递减次序计算各队的积分排名(利用RANK函数);按主要关键字“金牌”递
Mydog,Hero,isn’tafraidofmostthings.Butheisafraidofthevacuumcleaner(真空吸尘器).HealwayshidehimselfwhenMumcleanst
Analystshavehadtheirgoathumor,andIhavereadsortieofthisinterpretativeliterature,butwithoutbeinggreatlyinstruc
最新回复
(
0
)