请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2。其中的CoUeetion定义了集合类的操作接口。一个集合对象可以包含若干元素。工程中声明的Array是一个表示整型数组的类,是Collection的派生类,它实现了Collection中

admin2015-06-27  42

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmj2下的工程pmj2。其中的CoUeetion定义了集合类的操作接口。一个集合对象可以包含若干元素。工程中声明的Array是一个表示整型数组的类,是Collection的派生类,它实现了Collection中声明的纯虚函数。Array的成员说明如下:
成员函数add用于向数组的末尾添加一个元素;
成员函数get用于获取数组中指定位置的元素;
数据成员a表示实际用于存储数据的整型数组;
数据成员size表示数组的容量,数组中的元素个数最多不能超过size;
数据成员nllIn表示当前数组中的元素个数。
请在横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的正确输出结果应为:
1,2,3,4,5,6,7,8,9,10,
注意:只在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//****found****”。
#include
usingnamespacestd;
//集合类的操作接口
classCollection{
public:
//向集合中添加一个元素
virtualvoidadd(inte)=0;
//获取指定位置的元素
virtualintget(unsignedinti)
cons1z=0;
};
//实现了集合接口
classArray:publicCollection{
public:
Array(unsignedints)
{
//**********found**********
a=new________;
size=s;
num=0;
}
~Array()
{
//**********found**********
________;
}
virtualvoidadd(inte)
{
if(num//**********found**********
________=e;
num++;
  }
}
virtualintget(unsignedint
i)const
{
if(i//**********found**********
________;
}
return0;
}
private:
int*a;
unsignedintsze;
unsignedintnum;
};
voidfun(Collection&c01)
{
inti;
for(i=0;i<10;i++){
col.add(i+1);
}
for(i=0;i<10;i++){
cout<}
cout<}
intmain()
{
Arraya(0xff);
fun(a);
return0;
}

选项

答案(1)int[s]; (2)delete []a; (3)a[num] (4)return a[i];

解析 (1)主要考查考生对构造函数的掌握情况,要使用new给动态数组分配空间。
(2)主要考查考生对析构函数的掌握情况,使用delete 释放空间。
(3)主要考查考生对成员函数的掌握情况,为数组添加元素,使用语句:a[num] = e;。
(4)主要考查考生对成员函数的掌握情况,返回数组元素。
转载请注明原文地址:https://kaotiyun.com/show/aRNp777K
0

最新回复(0)