首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有如下程序段: #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
97
问题
有如下程序段:
#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全国计算机二级
相关试题推荐
在一个程序文件中有如下语句:externintvar;关于这个语句,下列表述中错误的是
在面向对象方法中,不属于“对象”基本特点的是()。
有如下程序:#include#includeusingnamespacestd;classAnimal{public:virtualstring
一间宿舍可住多个学生,则实体宿舍和学生之间的联系是( )。
T列符号中能够作为C++标识符的是()。
在线性表的顺序存储结构中,其存储空间连续,各个元素所占的字节数()。
下列给字符数组进行初始化中,正确的是()。
下列有关数据库的描述,正确的是()。
设有关键码序列(66,13,51,76,81,26,57,69,23),要按关键码值递增的次序排序,若采用快速排序法,并以第一个元素为划分的基准,那么第一趟划分后的结果为()。
执行下列语句段后,输出字符“*”的个数是()。for(inti=50;i>1:--i)cout<<’*’;
随机试题
A、AllstudentsaremembersoftheStudentUnion.B、AllstudentservicesarerunbytheStudentUnion.C、TheStudentUnionisloc
中毒的一般处理方法不包括
以“疏风清热,宣肺止咳”为功用的方剂是
生活中,家庭经常用小苏打当发酵粉做馒头,小苏打的化学名称是()。
()国防是指一些国家为弥补自身国防力量的不足,以结盟的形式联合相关国家进行防卫的国防。
在行政法律关系中,无论何种情况下,行政机关都有可能成为行政相对方。()
三类线程search、insert、delete共享(访问)单链表,利用P、V原语操作实现这三类线程。限定如下:(1)search可以与同类线程同时执行;(2)insert类线程之间互斥,但是可以与任意多search同时执行;(3)del
Excel没有的操作是()。A.自动排版B.自动填充数据C.自动求和D.自动筛选
考生文件夹下存在一个数据库文件“samp3.accdb”,里面已经设计了表对象“tEmp”,窗体对象“fEmp”,报表对象“rEmp”和宏对象“mEmp”。试在此基础上按照以下要求补充设计:“fEmp”窗体上单击“输出”命令按钮(名为“btnP”),实
AreweatthebeginningofanotherAgeofExploration?Perhapsevenmoreimportant,areweatthebeginningof【C1】______AgeofC
最新回复
(
0
)