首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #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
41
问题
有如下程序:
#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全国计算机二级
相关试题推荐
已知函数f1调用函数f2,若要把这两个函数的定义放在同一个文件中,则
下面是一个模板声明的开始部分:templatedouble…由此可知()。
有如下程序#includeusingnamespacestd;classAA{charc;public:AA(charch):c(ch){}
下面能作为软件需求分析工具的是
下列有关虚函数的表述中正确的是
下面是重载为非成员函数的运算符函数原型,其中错误的是
下面是重载为非成员函数的运算符函数原型,其中错误的是
下列选项中,不是C++关键字的是
随机试题
简述酸碱指示剂的选择依据。
A.死亡率B.构成比C.患病率D.发病率E.生存率表示事物内部各个组成部分所占的比重为
精神病患者治疗稳定几年无复发且对婚育无重要影响时应出具医学证明
有关对机电工程项目分包合同的叙述中,正确的说法是( )。
面层为沥青表面处治的道路,其路面等级属于()路面。
禁止期货从业人员挪用客户期货保证金或者其他资产的规定,主要是针对以下哪个机构的期货从业人员提出的?()[2010年5月真题]
导游人员常用的目光语应该是()
下列关于利用通用对话框产生的文件对话框的相关属性的描述中,错误的是( )。
What’sthemaintopicofthemonologue?
Thenatureofworkischanging.Recenttechnologicaladvances,ashiftfrommanufacturingtoservice-basedorganizations,incr
最新回复
(
0
)