首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序段: #include using namespace std; class base { public: base(int cnt) { resource=new int[cnt]
有如下程序段: #include using namespace std; class base { public: base(int cnt) { resource=new int[cnt]
admin
2021-07-02
29
问题
有如下程序段:
#include
using namespace std;
class base
{
public:
base(int cnt)
{
resource=new int[cnt];
}
~base()
{
delete[]resource;
}
virtual void show()
{
cout<<"base"<
}
int*resource:
};
class derived:public base
{
public:
derived(int cnt):base(cnt)
{
resource=new float[cnt];
}
~derived()
{
delete[]resource;
}
void show()
{
COUt<<"derived"<
}
float*resource;
};
上述程序使得derived对象中的动态内存空间有可能不被释放,有内存泄漏风险,原因是( )。
选项
A、base类是抽象类
B、derived类的析构函数没有释放基类的动态内存
C、base类的析构函数不是虚函数
D、derived类的resource与公有继承得到的resource同名
答案
C
解析
基类base中的数据成员resouree为整型指针变量,派生类derived中的数据成员resource与基类base中的同名,但类型为浮点型指针变量,基类base中构造函数使用new为resource(整型指针)分配了内存空间,在析构函数中释放;派生类derived的构造函数在成员初始化类表中调用base的构造函数构造对象的基类部分,然后在构造函数体内使用new为resource(浮点型指针)分配了内存空间,在析构函数中释放浮点型resource指针;由于基类base中的析构函数未定义为虚函数,所以派生类derived中的析构函数在被调用时,不会再调用基类base中的析构函数,导致基类base中的整型指针变量resource无法释放,造成内存泄漏。故本题答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/aifp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有如下程序段:inti=0,j=1;nt&r=i;//①r=j;//②int*p=&i;//③*p=&r;//④其中会产生编译错误的语句是()。
有如下两个类定义classxx{private:doublex1;protected:double:x2;public:doublex3;};classYY:
有如下类声明:classMyBASE{intk;public:voidset(intn){k=n;}intget()const{returnk;}};c
有如下程序:#includeusingnamespacestd;classobj{staticinti;public:obj(){i++;}~obj(){i--;)s
下列是重载乘法运算符的函数原型声明,其中错误的是()。
有如下定义:inta[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5的是()。
有如下类和对象的定义:classConstants{public;staticdoublegetPl(){return3.1416;}};Constantsconstants;下列各组
在下列函数原型中,可以作为类AA构造函数的是()。
若磁盘上已存在某个文本文件,其全路径文件名为d:\ncre\test.txt,下列语句中不能打开该文件的是()。
一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为()。
随机试题
由许多文化集丛结合而成的一个文化整体,而与其他文化模式互相区别,被称为()
鉴相器的作用及其组成是什么?
为研究外源性雌激素与子宫内膜癌的关系,某地展开了一项1:1匹配的病例对照研究,结果见下表:请对以上资料进行分析。
慢性肾功能不全之阴阳两虚证治宜()
A.清营汤B.化斑汤C.白虎汤D.苇茎汤E.止嗽散治疗肺炎咳吐黄稠脓痰者,应首选
变异型心绞痛,不宜使用
在施工过程中,施工人员发现设计图纸不符合技术标准,施工单位技术负责人采取的正确做法是()。【2009年考试真题】
某增值税一般纳税企业单独设置了“预收账款”和“预付账款”账户。2008年5月,该企业发生下列经济业务:(1)5日,收到N公司预付的购货款34000元,已存入银行。(2)10日,收到M公司货物结算单,其中材料价款50000元,增值税8
以下关于MsgBox的叙述中,错误的是
AccordingtoWorldHealthOrganization,howmanypeopleamkilledbyoutdoorairpollution?Whatdolocalresidentsclaimfor?
最新回复
(
0
)