首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class obj{ static int i; public: Obj(){i++;} ~Obj(){i--;} s
有如下程序: #include using namespace std; class obj{ static int i; public: Obj(){i++;} ~Obj(){i--;} s
admin
2017-02-18
42
问题
有如下程序:
#include
using namespace std;
class obj{
static int i;
public:
Obj(){i++;}
~Obj(){i--;}
statie int getVal(){return i;}
};
int obj::i=0:
void f(){obj oh2;cout<
int main(){
Obj obl;
f();
obj*oh3=new obj;cout<
getVal();
delete oh3;cout<
return 0;
}
执行这个程序的输出结果是( )。
选项
A、232
B、231
C、222
D、221
答案
D
解析
本题考查构造函数和析构函数的调用顺序,调用顺序为先构造的后析构,后构造的先析构。本题中先定义了一个对象ob1,会执行构造函数,那么i就变为了l;再执行函数f后,由于又定义了一个对象ob2,所以再次执行构造函数,i就变为了2,输出了2。函数执行完后执行析构函数,i变为了1,然后又定义了对象指针,i变为了2。释放ob3后,i变为了1,所以答案为D。
转载请注明原文地址:https://kaotiyun.com/show/cIAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关于read()函数的下列描述中,正确的是()。
下列函数中,()是对文件进行写操作的。
下列函数的运行结果是#include<iostream.h>intf(inta,intB){intc;if(a>b)c=1elseif(a=b)c=0;
每个C++程序中都必须有且仅有一个
下列程序在构造函数和析构函数中申请和释放类的数据成员int*a,申请时使用形参b初始化a,请填空。classA{public:A(intb);~A(
能正确表示逻辑关系:“a≥10或a≤0”的C++语言表达式是
当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为【】。
下面叙述错误的是()。
下面程序输出的结果为#include"iostream.h"classA{public:A(){cout<<"CLASSA"<<endl;}
设A是一个类的类名,下面函数的参数的引用形式是( )。
随机试题
mRNA5,端帽结构为:()
项目投资效益的好坏关键在于()。
1996年FIDIC年会的大会主题为()。
锅炉受热面组件吊装的一般原则是()。
在建设工程工程量清单的各个组成部分中,投标人可根据实际情况调整的是()。
锁骨骨折固定后可采用的包扎方法为()。
关于人类个体神经元和脑的发育描述错误的是
求下列不定积分:
Accordingtothenewresearch,theoddshapemoundswereformedby______.
HenryFord,thefamousU.S.inventorandcarmanufacturer,oncesaid,"ThebusinessofAmericaisbusiness."Bythishemeantth
最新回复
(
0
)