首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A";} ~A(){cout<<"~A";} };
有如下程序: #include<iostream> using namespace std; class A { public: A(){cout<<"A";} ~A(){cout<<"~A";} };
admin
2012-01-20
30
问题
有如下程序: #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
解析
此题考查的是类的构造函数和析构函数。派生类构造函数的执行顺序为:首先调用基类的构造函数,调用顺序按它们被继承时说明的顺序;然后调用子对象的构造函数,调用顺序按它们在类中说明的顺序;最后是派生类构造函数中的内容。因此本题中,首先调用基类构造函数输出A,然后调用子对象的构造函数输出B,p=new A再调用类A的构造函数输出A;析构函数的调用顺序和构造函数的调用顺序相反。
转载请注明原文地址:https://kaotiyun.com/show/CDVp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中,函数fun的功能是:在任意给定的9个正整数中找出按升序排列时处于中间的数,将原数据序列中比该中间数小的数用该中间数替换,位置不变
下列规格的数在C语言源程序中不合法的是()。
关于C语言标识符,以下叙述中错误的是()。
以下关于函数的叙述中正确的是
在面向对象方法中,不属于"对象"基本特点的是( )。
已定义以下函数:intfun(int*P){return*P;}fun函数返回值是()。
在关系代数运算中,有5种基本运算,它们是()。
已知一个文件中存放若干工人档案记录,其数据结构如下:structa{charnumber[100];intage;floatp[6];};定义一个数组:structab[10];假定文件己正确打开,不能正确地从文件中读入10名工人
在软件生产过程中,需求信息的来源是()。
下列工具中,不属于结构化分析的常用工具的是()。
随机试题
简要说明我国当前社区卫生服务的管理模式有哪几种。
患儿,9个月,腹泻3天,每日大便二十余次,蛋花样,入院后给予补液、纠正酸中毒后患儿易出现
用5%碳酸氢钠溶液治疗高钾血症不是因为
机电安装工程进度计划按工程项目可分为哪几类计划?采用横道图编制机电安装工程施工进度计划有何优点?
对会计科目的描述主要包括()。
简述应用程序分析和动作研究等方法的具体工作步骤。
0.77×1024+0.046×5120的值是()。
意思表示与民事法律行为的关系是()。
求极限
假设客户表中有客户号(关键字)C1~C10共lO条客户记录,订购单表有订单号(关键字)OR1~OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是()。
最新回复
(
0
)