应用题
请使用VC6或使用[答题]菜单打开考生文件夹proj3下的工程prog3,其中声明了ValArray类,该类在内部维护一个动态分配的整型数组v。ValArray类的成员函数equals用于判断两个对象是否相等。两个ValArray对象相等,当且仅当两者的元素个数size相等,并且整型数组v的对应元素分别相等。如果两个对象相等,则equals返回true,否则返回false。请编写成员函数equals。在main函数中给出了一组测试数据,此种情况下程序的输出结果应为:
v1={1,2,3,4,5}
v2={1,2,3,4}
v3={1,2,3,4,6}
v4={1,2,3,4,5}
v1!=v2
v1!=v3
v1==v4
要求:
补充编制的内容写在“//********333********”与“//********666********”之间,不得修改程序的其他部分。
注意:程序最后将结果输出到文件out.dat中。输出函数writeToFile已经编译为obj文件,并且在本程序中调用。
//VatArray.h
#include <iostream>
using namespace std;
class ValArray {
int* v;
int size;
public:
ValArray const int* p, int n): size(n)
{
v = new int[size];
for (int i=0; i<size; i++)
v[i]=p[i];
}
~ValArray() { delete [] v; }
bool equals(const ValArray& other);
void print(ostream& out) const
{
out <<'{';
for (int i=0; i<size-1; i++)
out<<v[i]<<', ';
out<<v[size-1]<<'}';
}
};
void writeToFile(const char * );
//main.cpp
#include 'ValArray.h'
bool ValArray::equals (const ValArray& other)
{
//******** 333********
//******** 666********
}
int main()
{
const int a[]={1, 2, 3, 4, 5};
const int b[]={1, 2, 3, 4};
const int c[]={1, 2, 3, 4, 6};
const int d[]={1, 2, 3, 4, 5};
ValArray vl (a, 5);
ValArray v2(b, 4);
ValArray v3(c, 5);
ValArray v4 (d, 5);
cout<<'v1=';
v1.print(cout);
cout<<endl;
cout<<'v2 =';
v2.print(cout);
cout<<endl;
cout<<'v3=';
v3.print(cout);
cout<<endl;
cout<<'v4=';
v4.print(cout);
cout<<endl;
cout<<'v1'<<(v1.equals (v2)?'==': '!=') <<'v2' <<endl;
cout<<'vl'<<(v1.equals (v3)?'==': '!=') <<'v3' <<endl;
cout<<'v1'<<(v1.equals (v4)?'==':'!=')<<'v4'<<endl;
writeToFile('');
return 0;
}