首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序段: #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
11
问题
有如下程序段:
#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全国计算机二级
相关试题推荐
有如下类声明:classMyBASE{intk;public:voidset(intn){k=n;}intget()const{returnk;}};c
要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是30,50,一88,0和0,则下列定义语句中错误的是()。
类的析构函数的作用是()。
在下列枚举符号中,用来表示“相对于当前位置”文件定位方式的是()。
对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是()。
下面描述中错误的是
关于函数重载,下列叙述中错误的是()。
使用VC6打开考生文件夹下的源程序文件modil.cpp,该程序运行时有错误,请改正错误,使得程序通过运行。程序输出:5a}注意:不要改动main函数,不能增行或删行,也不能更改程序的结构,错误的语句在∥
下列数据结构中,能够按照“先进后出”原则存取数据的是()。
随机试题
人民是依法治国的主体和力量源泉,人民代表大会制度是保证人民当家作主的根本政治制度。()
下列不属于基底节的是
急性牙髓炎自发痛的时间最明显的特点为
关于企业所得税的说法,下列哪一选项是错误的?(2009年试卷一第27题)
会计的对象就是特定主体的()。
A公司主要从事汽车的研发、生产与销售,拥有多个自主汽车品牌,截止2017年,A公司已涉及工程机械、新能源、新能源汽车、信息技术服务、现代物流等六大产业,构筑了资源共享的优势产业链。A公司于2003年首次公开发行股票并在上海证券交易所上市。A公司2
在中国刺绣中,其代表性绣品描述正确的是()。
【2014年山东烟台.多选】教师在职业道德修养中要达到慎独,应着重从()下功夫。
警察要求司机停车,司机就必须将车开到路边停下,这种现象是()。
A、 B、 C、 D、 B
最新回复
(
0
)