首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class obj { static int i; public: obj(){i++;} ~obj(){i--;}
有如下程序: #include using namespace std; class obj { static int i; public: obj(){i++;} ~obj(){i--;}
admin
2017-12-14
22
问题
有如下程序:
#include
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<
int main(){
obj ob1;
f();
obj*ob3=new obj;cout<
getVal();
delete ob3;cout<
return 0;
}
执行这个程序的输出结果是( )。
选项
A、232
B、231
C、222
D、221
答案
D
解析
本题考查构造函数和析构函数的调用顺序,调用顺序为先构造的后析构,后构造的先析构。本题中先定义了一个对象ob1,会执行构造函数,那么i就变为了1;再执行函数f后,由于又定义了一个对象ob2,所以再次执行构造函数,i就变为了2,输出了2。函数执行完后执行析构函数,i变为了1,然后又定义了对象指针,i变为了2。释放ob3后,i变为了1,所以答案为D。
转载请注明原文地址:https://www.kaotiyun.com/show/fkAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列程序将x、y和z按从小到大的顺序排列,请将下面的函数模板补充完整。template<classT>voidfun(______){Ta;if(x>y)
软件测试的目的是
下列关于函数模板实参不能省略的情况说明不正确的是
下列选项中不全是C++语言关键字的是
在程序设计阶段应该采取【】和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而用某种程序设计语言写成程序。
在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。
将E-R图转换到关系模式时,实体与实体间的联系可以表示成()。
软件生命周期中所花费用最多的阶段是
实体是信息世界中广泛使用的一个术语,它用于表示()。
随机试题
依次填入下列各句横线处的成语,最恰当的一组是()。①乔布斯是一位________,极具魅力并且成就非凡的人。他主持开发的技术已经影响了几代人的生活。②瑞士央行猝不及防地撤出欧元兑换瑞郎汇率下限的做法为全球进入信用货币时代以来所罕见,
Earthquakesaresomethingthatmostpeoplefear.Therearesomeplacesthathave【71】ornoearthquakes.Mostplacesintheworld,
精神分裂症急性症状控制后,其有效维持剂折合为
郁金散主要用于
在建设工程投资估算中,建设期贷款利息按( )×年利率计算。
下列各项应征收契税的有()。
对社区服刑人员的矫正是为了( )。
纳什在《大自然的权利》中提出:“人们对自然的了解越多,就越难以接受那种认为宇宙是为人类而存在的观点。与其说人类是自然的主人,不如说他是自然共同体的一个成员。”这说明()。
在窗体中添加一个名称为Command1的命令按钮,然后编写如下程序:PublicxAsIntegerPrivateSubCommandlClick0x=10Calls1Calls2M
Whenwewantto【C1】______otherpeoplewhatwethink,wecandoitnotonlywiththehelpofwords,butalsoinmany【C2】______way
最新回复
(
0
)