📄 array.cpp.bak
字号:
//array.cpp
//定义类Array的成员函数
#include <iostream.h>
#include <stdlib.h>
#include <assert.h>
#include "array.h"
//初始化文件作用域内的静态数据成员
int Array:: arrayCount=0; //还没有对象
//返回实例化的数组对象的个数
int Array:: getArrayCount() {return arrayCount;}
//类Array的构造函数
Array:: Array(int arraySize)
{
++arrayCount; //对象计算加1
size=arraySize; //默认数组的大小为10w
ptr=new int[size]; //为数组分配内存空间
assert(ptr!=0); //内存分配不成功时中止
for(int i=0; i<=size-1; i++)
ptr[i]=0; //对数组进行初始化
}
//类Array的拷贝函数
Array:: Array(const Array &init)
{
++arrayCount; //对象计数加1
size=init.size; //指定对象的大小
ptr=new int[size]; //为数组分配内存空间
assert(ptr!=0); //内存分配不成功时中止
for(int i=0; i<=size-1; i++)
ptr[i]=init.ptr[i]; //把初始化值拷贝到对象中
}
//析构函数
Array:: ~Array()
{
--arrayCount; //对象计数减1
delete []ptr; //回收分配给数组的内存空间
}
//获取数组的大小
int Array:: getSize() const {return size;}
//重载下标运算符
int &Array:: operator[](int subscript)
{
//检测下标越界错误
assert(0<=subscript&&subscript<size);
return ptr[subscript]; //返回的引用可用作左值
}
//判断两个数组是否相等。若相等,返回1,否则返回0
int Array:: operator==(const Array &right) const
{
if(size!=right.size)
return 0; //数组的大小不相等
for(int i=0; i<=size-1; i++)
if(ptr[i]!=right.ptr[i])
return 0; //数组不相等
return 1; //数组相等
}
//判断两个数组是否不相等。若不相等,返回1,否则返回0
int Array:: operator!=(const Array &right) const
{
if(size!=right.size)
return 1; //数组的大小不相等
for(int i=0; i<=size-1; i++)
if(ptr[i]!=right.ptr[i])
return 1; //数组不相等
return 0; //数组相等
}
//重载赋值运算符
const Array &Array:: operator= (const Array &right)
{
if(right!=*this){ //检查是否是自我赋值
delete []ptr; //回收内存空间
size=right.size; //指定对象的大小
ptr=new int[size]; //为数组拷贝分配内存空间
assert(ptr!=0); //内存分配不成功时中止
for(int i=0; i<=size-1; i++)
ptr[i]=right.ptr[i]; //把数组拷贝到对象中
}
return *this; //使得能连续执行x=y=z;
}
//重载用于类Array输入输出运算符,为整个数组赋值
istream &operator>> (istream &input, Array &a)
{
for(int i=0; i<=a.size-1; i++)
input>>a.ptr[i];
return input; //使得能连续执行cin>>x>>y;
}
//重载用于类Array的输出运算符
ostream &operator<< (ostream &output, const Array &a)
{
for(int i=0; i<=a.size-1; i++){
output<<a.ptr[i]<<' ';
if((i+1)%10==0)
output<<endl;
}
return output; //使得能连续执行cout<<x<<y;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -