首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class Obj { static int i; public: Obj() { i++; } ~Obj() { i--; } static int getVal() { ret
有如下程序: #include using namespace std; class Obj { static int i; public: Obj() { i++; } ~Obj() { i--; } static int getVal() { ret
admin
2020-07-23
23
问题
有如下程序:
#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/NQyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classAppliance{public:Appliance(){}
有如下类定义:classPerson{public:Person(strings):name(s){}protected:stringname;
在C++中,编译系统自动为一个类生成默认构造函数的条件是
下列运算符只能重载为成员函数的一组是
在公有继承的情况下,在派生类中能够访问的基类成员包括
下列关于函数模板的表述中,正确的是
已知函数f1调用函数f2,若要把这两个函数的定义放在同一个文件中,则
下面是重载为非成员函数的运算符函数原型,其中错误的是
在软件开发中,需求分析阶段可以使用的工具是( )。
在软件开发中,需求分析阶段可以使用的工具是()。
随机试题
试述急性肺损伤(ALI)/急性呼吸窘迫综合征(ARDS)的诊断标准。
男性,18岁,2周前上腹部被车把撞伤。近7天上腹持续性胀痛,逐渐膨起,餐后加重,并放射到腰背部痛,食欲缺乏,恶心,呕吐。38℃,上腹偏左侧明显膨隆。扪到界限不清,触痛性肿块,直径10cm,波动不明显,肿块不活动。应考虑的诊断为
患者,女,54岁。患乳腺癌广泛转移,病情日趋恶化,患者对医务人员工作不满,常对其陪伴亲属发脾气。该患者的心理反应处于
下列各项中,属于企业开展负债经营、获得财务杠杆利益的条件是()。
根据《行政许可法》及国家税务总局有关公告规定,下列关于税务行政许可申请、受理、审查及决定程序事项的说法中,正确的有()。
教育对生产力的促进作用主要通过两个途径实现:教育再生产劳动力和________。
下列人物中提出了国民义务教育思想的是
可持续发展战略
WhydidShermanAlexieonlytakedayjobs?
Federaleffortstoaidminoritybusinessesbeganinthe1960swhentheSmallBusinessAdministration(SBA)beganmakingfederally
最新回复
(
0
)