首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include using namespace std; class obj { static int i; public: obj(){i++;} ~obj(){i--;}
有如下程序: #include using namespace std; class obj { static int i; public: obj(){i++;} ~obj(){i--;}
admin
2017-12-14
38
问题
有如下程序:
#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://www.kaotiyun.com/show/fkAp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于类和对象的叙述中,错误的是()。
下列叙述中正确的是
下列程序的输出是3,请填充程序中的空缺,使该行形成一个运算符重载函数的定义。#includeusingnamespacestd;classMyNumber{Intn;public:MyNu
下列叙述中正确的是
下列数据结构中具有记忆作用的是
下列运算符中哪些是不能够被重载的?
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
下述关于数据库系统的叙述中,正确的是()。
需求分析阶段的任务是()。
下列工具中为需求分析常用工具的是()。
随机试题
两个或两个以上机关联合行文时,必须经过的一道程序是:
()螺钉旋具按头部形状不同可分为“-”字形和“+”字形两种。
分销渠道冲突的类型有()
晚幼红细胞成为网织红细胞是在______完成的
下列哪种细胞在ALL骨髓象中少见
下列哪些是以传统组合管理方式构思证券组合资产时所应遵循的基本原则()
甲将自己收藏的一幅名画卖给乙,乙当场付款,约定5天后取画。丙听说后,表示愿出比乙高的价格购买此画,甲当即决定卖给丙,约定第二天交货。乙得知此事,诱使甲8岁的儿子从家中取出此画给自己。该画在由乙占有期问。被丁盗走。此时该名画的所有权属于下列哪个人?()
信效度之间关系的说法,正确的是
Thelevelofeconomicandindustrialdevelopmentenjoyedbyastateaffectstheforeignpolicygoalsitcanpursue.(46)Asagen
Manyadvertisersremain______oftheInternetandquestionhowheavilytorelyonit.(中国科学院2013年10月试题)
最新回复
(
0
)