首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
66
问题
有如下程序: #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全国计算机二级
相关试题推荐
完成下列类的构造函数,初始化语句为【 】。#include<iostream.h>classTest{private:intx,y;public,voidTest(intinitx,intinity){_
软件生命周期包括八个阶段。为使各时期的任务更明确,又可以分为以下三个时期:软件定义期,软件开发期,软件维护期。编码和测试属于【 】期。
关于常成员函数,下列说法中错误的是
设有定义nita:floatf;doubleinti,则表达式10+’a’+i+f值的数据类型是()
以下程序的执行结果为()。#include<iostream.h>Classsample{intn;public:sample(inti){n=i;}operato
在析构函数中调用虚函数时,采用_____联编。
下列模式中,能够给出数据库物理存储结构与物理存取方法的是
在结构化方法中,用数据流程图(DFD)作为描述工具的软件开发阶段是
利用成员函数对双目运算符重载,其左操作数为______,右操作数为______。
下列选项中合法的用户标识符是()。
随机试题
A.10年、10年B.10年、20年C.7年、10年D.7年、7年对特定疾病有特殊疗效的中药品种,申请中药保护品种的保护期限和延长的保护期限分别为()。
房产测绘中产生测量误差的原因有()。
客源信息开发的直接回应拓展策略,是以()为中心的营销手段。
申报日期栏应填______。提运单号栏应填______。
根据下列材料,回答下列题目:假定某投资者买入了一张(100份)IBM公司5月份执行价格为100美元的看涨期权合约,期权价格为5美元,并且卖出了一张IBM公司5月份执行价格为105美元的看涨期权合约,期权价格为2美元。如果到期时,IBM公司的股票价格为
()是指合约标的物所有权进行转移,以实物交割或现金交割方式了结未平仓合约的时间。
公司营业执照签发日期,即为营业执照办理下发日期。()
(2004年)设z=z(x,y)是由x2一6xy+10y2一2yz—z2+18=0确定的函数,求z=z(x,y)的极值点和极值。
Whataretheytalkingabout?
Forwhatoccasionhasthecakebeenmade?
最新回复
(
0
)