C++运算符重载程序

来源:百度知道 编辑:UC知道 时间:2024/09/21 01:54:03
//ARRAY.CPP
//定义类Array的成员函数
#include <iostream.h>
#include <stdlib.h>
#include <assert.h>
#include "Array1.h"

int Array::arrayCount=0; //初始化文件作用域内的静态数据成员
//此时还没生成对象,是在类中定义
int Array::getArrayCount(){return arrayCount;}//初始化静态成员函数,返回实例化的数组
//对象的个数

Array::Array(int arraySize) //定义类Array的默认构造函数
{
++arrayCount; //对象计数加1
size=arraySize; //数组默认大小为10
ptr=new int[size]; //为数组分配内存空间
assert(ptr!=0); //分配不成功是时中止
for(int i=0;i<size;i++){ptr[i]=0;} //对数组初始化
}
Array::Array(const Array &init) //定义类Array的拷贝构造函数
{
++arrayCount; //对象计数加1
size=init.size; //指定对象的大小
ptr=new int[size]; //为数组分配内存空间
assert(ptr!=0); //内存空间分配成功时继续执行
for(int i=0;i<size;i++){ptr[i]=init.ptr[i];} //把初始化值拷贝到对象中
}
Array::~Array() //析构函数
{
--arrayCount; //对象计数减1
delete []ptr; //回收分配给数组的内存空间
}
int Array::getSize()const {return size;} /

你的Array类建在哪儿的,贴出来噻

#include "Array1.h"

我按你的题加了个类,发现你里面有比较多的错误,现在能运行了,不过你得按你的目的改一下

//ARRAY.CPP
//定义类Array的成员函数
#include <iostream.h>
#include <stdlib.h>
#include <assert.h>
class Array{
private:
int size,*ptr;
public:
static int arrayCount;
int getArrayCount();
Array(int arraySize=10);
Array(const Array &init);
~Array();
int getSize()const;
int &operator[](int);
int operator==(const Array &right)const;
Array &operator=(Array &right);
friend istream &operator>>(istream &input,Array &a);
friend ostream &operator<<(ostream &output, Array &a);
};

int Array::arrayCount=0; //初始化文件作用域内的静态数据成员
//此时还没生成对象,是在类中定义
int Array::getArrayCount(){return arrayCount;}//初始化静态成员函数,返回实例化的数组
//对象的个数

Array::Array(int arraySize) //定义类Array的默认构造函数
{
++arrayCount; //对象计数加1
s