首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A’;} ~A(){cout<<"~
有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A’;} ~A(){cout<<"~
admin
2013-02-27
44
问题
有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A’;} ~A(){cout<<"~A";} }; class B:public A { A*p; public: B(){cout<<"B";p=new A();} ~B(){cout<<"~B";delete p;} }; int main() { B obj; return 0; } 执行这个程序的输出结果是
选项
A、BAA~A~B~A
B、ABA~B~A~A
C、BAA~B~A~A
D、ABA~A~B~A
答案
B
解析
本题考查的是派生类对象的构造与析构。建立派生类对象时,构造函数的执行顺序如下:
(1)执行基类的构造函数,调用顺序按照各个基类被继承时声明的顺序(自左向右);
(2)执行成员对象的构造函数,调用顺序按照各个成员对象在类中声明的顺序(自上而下);
(3)执行派生类的构造函数。
所以本题在建立派生类B的对象。obj时会先调用基类A的构造,然后调用自身的构造。注意:B类中定义的成员p是A类的指针而不是一个对象,故在调用自身构造函数前不需要构造。而在B类构造函数中使用new操作符动态构造了一个A类的对象,所以整个构造结果是输出:ABA。派生类对象的析构与构造严格相反,即先析构自身,然后析构自身所包含的成员对象,最后调用基类的析构函数。故本题中,当main()函数返回时,析构B类的对象obj:首先会调用~B(),接着再调用~A()。但是,在~B()函数中使用delete操作符释放了动态创建的A类对象,故整个析构所输出的结果是:~B~A~A。所以应该选择B。
转载请注明原文地址:https://kaotiyun.com/show/W7Vp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序 #include<stdio.h> intsum(intdatA) { staticintinit=1; returndata+=init++; } main() { inti; f
下列选项中能正确定义数组的语句是()。
有以下程序 #include<stdio.h> main() {FILE*fp; inti,a[6]={1,2,3,4,5,6},b[6]; fp=fopen("d.dat","w+b"); fwrite(a,size
有以下程序 #include<stdio.h> main() {FILE*fp; inti,a[6]={l,2,3,4,5,6},k; fp=fopen("data.dat","w+"); for(i=0;i<6;i+
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是()。
给定程序MODl1.C中函数char*fun(char*s1,char*s2,char*r)的功能:将两个长度相等的数字字符串当作两个加数,求其代表的数值之和并以字符串的形式存入r所指内存且返回。例如:s1是”723”,s2是”567”
下面表示纯虚函数的成员函数是()。
类的成员函数中,只能用于检测输入操作的函数是【】。
继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
【】是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。
随机试题
不属于业主方进度控制任务的有()。
在存储一个汉字内码的两个字节中,每个字节的最高位是( )。
长期股权投资包括氽业持有的对其子公司、合营食业及联营企业的权益性投资以及企业持有的对被投资单位不具有控制、共同控制或重大影响,且在活跃市场中有报价、公允价值能够靠计量的权益性投资。()
张老师是一位小学语文老师,因为要给学生上一节语文课,涉及许多植物的名字,因此张老师收集了大量的资料,他现在要把有关资料进行整理、分析,最不合理的方法是()。
老王在A市有两套住房,一套自己居住,另一套闲置。老张是老王的朋友。一直居住在B市,现由于工作原因,需要在A市长期租住。老张希望租老王闲置的那套房子,老王说:“我女儿两个月后大学毕业,如果她毕业后不回A市工作生活,我就把房子出租给你。”下列选项中,哪些为真,
简述紧急避险与正当防卫的关系。
SupposeyouareamemberoftheStudents’Unionandyouruniversityisgoingtoholdaneveningpartytowelcomethenewstudent
ARM处理器按照ARM公司分类可分为经典ARM处理器(ARM7~ARM11)、Cortex嵌入式处理器和Cortex应用处理器,其中Cortex嵌入式处理器包括实时应用的Cortex一【49】和面向控制应用的Cortex一【50】。
请根据以下各小题的要求设计VisualBasic应用程序(包括界面和代码)。(1)在名称为FOrml、标题为“电影制作”的窗体上画1个名称为Cmbl、初始内容为空的下拉式组合框(可以输入文本)。下拉列表中有“音频效果”、“视频效果”和“视频
Wearerapidlyneartheendofthiscourseinthehistoryofclassicalmusic.Wehavecoveredseveral【B1】______.inaveryshor
最新回复
(
0
)