请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每

admin2016-06-12  31

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj3下的工程proj3,其中声明的DataList类,是一个用于表示数据表的类。DataList的重载运算符函数operator+,其功能是求当前数据表与另一个相同长度的数据表之和;即它返回一个数据表,其每个元素等于相应两个数据表对应元素之和。请编写这个operator+函数。程序的正确输出应该是:
  两个数据表:
  1,2,3,4,5,6
  3,4,5,6,7,8
  两个数据表之和:
  4,6,8,10,12,14
  要求:
  补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为0bj文件,并且在本程序中调用。
}/DataList.h
#include
using namespace std;
class DataList{//数据表类
  int len;
  double*d;
public:
  DataList(int len,double data[]=NULL);
  DataList(DataList&data);
  int length()const{return fen;)
  double getElement(int i)const{re-
turn d;)
  DataList operator+(const DataList&
list)const;//两个数据表求和void show()const;//显示数据表
};
void  writeToFile  (char  *,const
DataList&);
//main.cpp
#include”DataLiSt.h”
DataList::DataList(int len,double
data[]):len(1en){
d=new double[1en];
for(int i=0,id=(data==NULL?0.0:data
);
}
DataList::DataList(DataList:&data):
fen(data.fen){
d:new double[fen];
for<d=data.d
}
{
DataList DataList::operator+(const DataList&list)const{//两个数据表求和double*dd=Flew double[list:
1ength()];
//*********333*********
//*********666*********
return DataList(list.1ength(),cld);
}
void DataList::show()constf//显示数据表
for(int i=0;icouL<<<“,”;
COUt<}
int main(){
  double sl[]={1,2,3,4,5,6);
  double s2[]={3,4,5,6,7,8);
  DataLi st:listl(6,s1),list2(6,s2);//定义两个数据表对象
cout<<“两个数据表:”<listl.show();
list2.show();
cout<  endl;
(1istl+list2).show();
writeToFile(“”,listl+list2);
return 0;
}

选项

答案for(int i=0;i
解析 本题考查DataList类,其中涉及构造函数、动态数组、复制构造函数、const函数和运算符重载。
【解题思路】
主要考查考生对重载运算符的掌握,题目要求对两个数据表求和。程序已经定义了动态数组dd,并已经分配好了空间,接下来只要运用循环语句完成元素相加并进行赋值即可。
转载请注明原文地址:https://jikaoti.com/ti/PpE0FFFM
0

最新回复(0)