首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
24
问题
有如下程序:
#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://jikaoti.com/ti/E6l0FFFM
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序:#includeusingnamespacestd;classBase{private:voidfun1()const{cout
已知函数f1调用函数f2,若要把这两个函数的定义放在同一个文件中,则
下面是一个模板声明的开始部分:templatedouble…由此可知()。
下列关于模板的表述中,错误的是
有如下程序#includeusingnamespacestd;classAA{charc;public:AA(charch):c(ch){}
下列有关虚函数的表述中正确的是
下列选项中,不是C++关键字的是
下面不属于软件需求分析阶段主要工作的是
下面不属于软件设计阶段任务的是()。
随机试题
粗刮时,粗刮刀的刃磨成()。
越鞠丸中,主治食郁者为越鞠丸中,主治血郁者为
目前我国药品说明书存在的主要问题有
下列报表中,()考察资金平衡和余缺情况,是表示财务状况的重要财务报表。
我国目前编制工业品出厂价格指数所用的权重为()。
与一般期货交易所章程相比,会员制期货交易所章程还应当载明下列( )事项。
财务分析是实现理财目标的重要手段。()
甲产品在生产过程中,需经过两道工序,第一道工序定额工时2小时,第二道工序定额工时3小时。期末,甲产品在第一道工序的在产品40件,在第二道工序的在产品20件。作为分配计算在产品加工成本(不含原材料成本)的依据,其期末在产品约当产量为()件。
群体的主要功能表现为()。
下列各句句意清楚、没有语病的是()。
最新回复
(
0
)