首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Obj{ static int i; public: Obj(){i++;} ~Obj(){i--;} stat
有如下程序: #include using namespace std; class Obj{ static int i; public: Obj(){i++;} ~Obj(){i--;} stat
admin
2021-06-10
58
问题
有如下程序:
#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<<ob2.getVal();}
int main(){
Obj ob1;
f();
Obi*ob3=new obj:cout<<ob3->getVal();
delete oh3:cout<<Obj::getVal();
return 0;
}
执行这个程序的输出结果是( )。
选项
A、232
B、231
C、222
D、221
答案
D
解析
本题考查构造函数和析构函数的调用顺序,调用顺序为先构造的后析构,后构造的先析构。本题中先定义了一个对象obl,会执行构造函数,那么i就变为了1;再执行函数f后,由于又定义了一个对象ob2,所以再次执行构造函数,i就变为了2,输出了2。函数执行完后执行析构函数,i变为了1,然后又定义了对象指针,i变为了2。释放ob3后,i变为了1,所以答案为D。
转载请注明原文地址:https://kaotiyun.com/show/fVfp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于return语句的叙述中,正确的是
有如下程序:#includeusingnamespacestd;classXB{inta;public:s
请打开考生文件夹下的解决方案文件proj3,其中包含了类Integers和主函数main的定义。一个In—tegers对象就是一个整数的集合,其中包含0个或多个可重复的整数。成员函数add的作用是将一个元素添加到集合中,成员函数remove的作用是从集合中
若AA为一个类,a为该类的非静态数据成员,在该类的一个成员函数定义中访问a时,其书写格式为()。
下列对于软件测试的描述中正确的是()。
若MyClass是一个类名,且有如下语句序列MyClassc1,*c2;MyClass*c3=newMyClass;MyClass&c4=c1;上面的语句序列所定义的类对象的个数是()。
下列选项中,正确的C++表达式是()。
下列有关继承和派生的叙述中,正确的是()。
一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是()。
随机试题
我国安全生产方针是:"安全第一、预防为主"。 ()
CT扫描中使用平滑(或软组织)算法,结果是
小蓟饮子的功用是五苓散的功用是
胎盘早剥的病因,以下哪项不多见
关于土方填筑与压实的说法,正确的有()。
只有列入“种类表”的进出口商品,才属于法定检验的商品。()
按月还息、到期一次性还本还款法适用于期限在3年以内(不含3年)的贷款。()
1、4、8、14、24、42、()
对于满足0≤p≤4的一切实数,不等式x2+px>4x+p-3恒成立。(1)x∈(-∞,-1);(2)x∈(3,+∞)。
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用(双引号)括起时,寻找被包含文件的方式是()。
最新回复
(
0
)