C++实践数组类运算的实现参考
【项目-数组类运算的实现】
设计数组类Array,为了实现测试函数中要求的功能,请补足相关的函数(构造、析构函数)和运算符重载的函数。
实现策略提示:可以将测试函数中的语句加上注释,取消一句的注释,增加相应的函数,以渐增地实现所有的功能,避免全盘考虑带来的困难。
classArray
{
private:
int*list;//用于存放动态分配的数组内存首地址
intsize;//数组大小(元素个数)
public:
//成员函数声明
};
//要求测试函数能够运行出正确、合理的结果:
intmain()
{
inta[8]={1,2,3,4,5,6,7,8};
intb[8]={10,20,30,40,50,60,70,80};
Arrayarray1(a,8),array3,array4;
constArrayarray2(b,8);
array4=array3=array1+array2;
array3.show();
array4.resize(20);
array4[8]=99;
cout<
[参考解答]
#include
#include
#include
usingnamespacestd;
classArray
{
private:
int*list;//用于存放动态分配的数组内存首地址
intsize;//数组大小(元素个数)
public:
Array(intsz=50);//构造函数
Array(inta[],intsz);//构造函数
Array(constArray&a);//拷贝构造函数
~Array();//析构函数
Arrayoperator+(constArray&a2);//重载"="
Array&operator=(constArray&a2);//重载"="
int&operator[](inti);//重载"[]"
constint&operator[](inti)const;
intgetSize()const;//取数组的大小
voidresize(intsz);//修改数组的大小
voidshow()const;
};
Array::Array(intsz)//构造函数
{
assert(sz>=0);//sz为数组大小(元素个数),应当非负
size=sz;//将元素个数赋值给变量size
list=newint[size];//动态分配size个int类型的元素空间
}
Array::Array(inta[],intsz)
{
assert(sz>=0);//sz为数组大小(元素个数),应当非负
size=sz;//将元素个数赋值给变量size
list=newint[size];//动态分配size个int类型的元素空间
for(inti=0;i=0&&n=0&&n=0);//检查sz是否非负
if(sz==size)//如果指定的大小与原有大小一样,什么也不做
return;
int*newList=newint[sz];//申请新的数组内存
intn=(sz
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接