首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespaee std; class Obj { static int i; public: obj() {i++;} -obj()
有如下程序: #include<iostream> using namespaee std; class Obj { static int i; public: obj() {i++;} -obj()
admin
2021-09-05
85
问题
有如下程序:
#include<iostream>
using namespaee std;
class Obj {
static int i;
public:
obj() {i++;}
-obj() {i--;}
static int getVal() {return i;}
};
int obj∷i=0:
void f() {obj oh2;cout<<ob2.getVal();}
int main() {
obj ob1;
f();
Obj * ob3=new obj;cout<<oh3->getVal();
delete ob3;cout<<obj∷getVal();
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/F7fp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
请打开考生文件夹下的解决方案文件proj1,其中定义了一个CD类。程序中位于每个//ERROR**********found**********下的语句行有错误,请加以更正,不得修改程序的其他部分。更正后程序的输出应该是:歌唱祖国30义勇军进行曲95
下列关于C++预定义流对象的叙述中,正确的是()。
下列有关运算符重载的叙述中,正确的是()。
若MyClass为一个类,执行“MyClassa[4],*p[5];”语句时会自动调用该类构造函数的次数是()。
下列运算符中,不能被重载的是()。
下列选项中不符合良好程序设计风格的是()。
下列字符串中,正确的C++标识符是()。
某二又树有5个度为2的结点,则该二叉树中的叶子结点数是
在下列字符中,不允许作为C++标识符的是()。
关于运算符重载,下列表述中正确的是()。
随机试题
人体维生素D的主要来源
有机磷中毒“中问型综合征”的发病机制是
麻醉药品处方至少保存
A.特殊限制使用级B.特殊使用级C.限制使用级D.非限制使用级抗菌药物临床应用实行分级管理经长期临床应用证明安全、有效,对细菌耐药性影响较小,价格相对较低的抗菌药物属于()
工程担保包括()。
“中国”作为我国国名的简称,开始于清朝。()
甲煤矿拥有乙钢厂普通债权40万元,现乙钢厂被宣告破产,清算组查明甲煤矿尚欠乙钢厂20万元运费未付。清算组预计破产清偿率为50%。甲煤矿要求抵销债务。债权人会议各方为甲煤矿的债权发生争执。下列点正确的是()
Please______beforeyoucrosstheroad.
Whethertheextensionofconsciousnessisa"goodthing"forhumanbeingsisaquestionthat______ofawidesolution.
Becauseadegreefromagooduniversityisthemeanstoabetterjob,educationisoneofthemostsophisticatedareasinJapane
最新回复
(
0
)