首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序段: #include<iostream> using namespace std; class base { public: base(int cnt) { resource=new int[ent]; } ~base() { delete[]
有如下程序段: #include<iostream> using namespace std; class base { public: base(int cnt) { resource=new int[ent]; } ~base() { delete[]
admin
2020-07-23
82
问题
有如下程序段:
#include<iostream>
using namespace std;
class base
{
public:
base(int cnt)
{
resource=new int[ent];
}
~base()
{
delete[]resource;
}
virtual void show()
{
cout<<"base"<<endl;
}
int*resource:
};
class derived:public base
{
public:
derived(int cnt):base(cnt)
{
resource=new float[cnt];
}
~derived()
{
delete[]resource;
}
void show()
{
cout<<"derived"<<endl;
}
float*resource;
};
上述程序使得derived对象中的动态内存空间有可能不被释放,有内存泄漏风险,原因是( )。
选项
A、base类是抽象类
B、derived类的析构函数没有释放基类的动态内存
C、base类的析构函数不是虚函数
D、derived类的reSotlrce与公有继承得到的resource同名
答案
C
解析
基类base中的数据成员resource为整型指针变量,派生类derived中的数据成员resource与基类base中的同名,但类型为浮点型指针变量,基类base中构造函数使用new为resource(整型指针)分配了内存空间,在析构函数中释放;派生类derived的构造函数在成员初始化类表中调用base的构造函数构造对象的基类部分,然后在构造函数体内使用new为resource(浮点型指针)分配了内存空间,在析构函数中释放浮点型resource指针;由于基类base中的析构函数未定义为虚函数,所以派生类derived中的析构函数在被调用时,不会再调用基类base中的析构函数,导致基类base中的整型指针变量resource无法释放,造成内存泄漏。故本题答案为C选项。
转载请注明原文地址:https://kaotiyun.com/show/pGyp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
若目前D盘根目录下并不存在test.txt文件,则下列打开文件方式不会自动创建test.txt文件的是
在公有继承的情况下,允许派生类中新定义的成员函数直接访问的基类成员只包括
关于函数声明格式中的,下列叙述错误的是
在函数中,可以用auto、extern、register和static这四个关键字中的一个来说明变量的存储类型,如果不说明存储类型,则默认的存储类型是()。
下面不能作为软件设计工具的是
下列关于运算符重载的叙述中,正确的是
对长度为n的线性表作快速排序,在最坏情况下,比较次数为
按照标识符的要求,下列选项中,()符号不能组成标识符。
下列语句中错误的是()。
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。
随机试题
男性患者,62岁,因四肢麻木伴双下肢无力逐渐加重1年入住康复科,自觉小腿有捆绑感,行走不稳,有时不成直线,洗脚时对冷热水不敏感,入院体检:神志清醒,对答切题,颈部僵硬,颈椎活动受限,快速屈颈时出现四肢“触电”样感,双上肢肱二头肌反射活跃,双侧Hoffman
支气管扩张或肺脓肿的症状特点是慢性阻塞性肺疾病的症状特点是
自觉呼吸短促而不相接续,气短不足以息的是()呼吸急促困难,喉中痰鸣的是()
A.拇指对掌功能障碍B.手内肌萎缩,爪形手畸形C.垂腕D.骨关节外展障碍E.骨关节内展障碍桡神经损伤
业主在选择监理工程师(单位)时考虑的因素有()。
《水运工程混凝土质量控制标准》规定:海水环境下南方水位变动区钢筋混凝土最小保护层厚度为()。(注:箍筋直径为6mm时主钢筋的保护层厚度)
一般情况下,变动收益证券比固定收益证券( )。
个人独资企业分支机构的民事责任应由()承担。
用法定盈余公积转增资本或弥补亏损时,均不导致所有者权益总额的变化。()
如果Excel单元格值大于0,则在本单元格中显示“已完成”;单元格值小于0,则在本单元格中显示“还未开始”;单元格值等于0,则在本单元格中显示“正在进行中”,最优的操作方法是
最新回复
(
0
)