首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
14
问题
有如下程序:
#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://kaotiyun.com/show/fkAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
假定a=3,下列程序的运行结果是()。#include<iostream.h>intfun(intn);voidmain(){cout<<"Pleaseinputanumber
有函数模板声明和一些变量定义如下:templateT1sum(T2,T3);doubled1,d2;则下列调用中,错误的是
有三个关系R、S和T如下:则由关系R和S得到关系T的操作是
下列语句中,输出与众不同的是
以下有关析构函数的叙述不正确的是
以下能对二维数组a进行正确初始化的语句是
在面向对象方法中,属性与操作相似的一组对象称为______。
下列对派生类的描述中,错误的是
在最坏情况下,下列排序方法中时间复杂度最小的是
随机试题
求微分方程的特解.
CT扫描中常用的FoV是指
天王补心丸的功能是()。
门框由( )组成。
(2016·云南)云南省中小学为学生开设了“民族团结教育课程”,这体现了课程结构的()
教师的职业良心可以表现在教育工作的每一个环节中,其主要内涵是恪尽职守、自觉工作、爱护学生、团结执教四个方面。其中自觉工作反映了()。
北京野生动物园的虎园伤人事件中。动物园方面已有明确规定禁止在虎园下车,动物园内部工作人员也一再劝阻,可悲剧还是发生了,对此你怎么看?
设f(x)在(-1,1)内具有二阶连续导数且f"(x)≠0,试证:(1)对于(-1,1)内的任一x≠0,存在唯一的θ(x)∈(0,1),使f(x)=f(0)+xf’(θ(x)x)成立;(2).
函数f(x)=sinx在[0,π]上的平均值为______.
Whatcanweconcludefromtheman’sreply?
最新回复
(
0
)