首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class Obj{ static int i; public: Obj(){i++;} ~Obj(){i
有如下程序: #include<iostream> using namespace std; class Obj{ static int i; public: Obj(){i++;} ~Obj(){i
admin
2020-07-30
97
问题
有如下程序:
#include<iostream>
using namespace std;
class Obj{
static int i;
public:
Obj(){i++;}
~Obj(){i--;}
static hat getVal(){return i;}
};
int Obj::i=0;
void f(){Obj ob2;cout<<ob2.getVal();}
int main(){
Obj ob1;
f();
Obj*ob3=new Obj;cout<<ob3->getVal q();
delete ob3;cout<<Obj::getVal();
return 0;
}
程序的输出结果是( )。
选项
A、232
B、231
C、222
D、221
答案
D
解析
此题考查的是静态成员。本题中,Obj类定义了一个静态数据成员i,并初始化为0在主函数中,首先定义了1个该类对象ob1,所以构造函数被调用1次,i加1;然后调用函数f(),该函数中又定义了一个对象ob2,此时i再次加1变为2,然后通过函数getVal()揄出i的值2。f()函数结束,ob2变量被释放,故析构函数被调用了1次,i变成1;回到主函数中,又动态创建了1个对象并让ob3指向它,此后i变成2并输出。最后释放动态创建的对象i变为1,输出1。故最终的输出结果是221。
转载请注明原文地址:https://kaotiyun.com/show/FPyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
下列关于运算符重载的叙述中,正确的是()。
下列叙述中正确的是()。
使用输入输出操作符setw,可以控制()。
下列字符串中可以用作C++标识符的是()。
下面属于白盒测试方法的是()。
下面关于派生类的描述中错误的是()。
请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明了SortedList类,是一个用于表示有序数据表的类。其成员函数insert的功能是将一个数据插入到一个有序表中,使得该数据表仍然保持有序。请编写这个insert函数。程序
在下列原型所示的C++函数中,按“传值”方式传递参数的是()。
下面不属于需求分析阶段工作的是()。
在软件开发中,需求分析阶段产生的主要文档是()。
随机试题
B超诊断梗阻性黄疸的最直接证据是()(2012年)
下列哪项是引起便血的小肠疾病
关于肾脏的叙述,错误的是
模糊度的概念多用于对某些图像质量下降因素的评价,以及X线图像工程设计方面。照片影像的模糊度涉及许多因素。其中主要是
对项目设计方案的评价,应包括()等各方面的情况及原因分析评价。
关于涂膜防水层施工环境温度要求的说法,正确的有()。
从广义上说,凡是增进人的知识和技能,发展人的智力与体力,影响人的思想观念的活动,都可以称为教育。()
希望他人向自己发出要约的意思表示称为()。
Beyond______stars,theastronautsawnothingbutspace.
Iwasinsomedoubtastowhetherthedetectivehad_____usaccidentallyonhiswayoutofthetownorifhe’dbeendeliberatel
最新回复
(
0
)