array.h
#ifndef _ARRAY_H_
#define _ARRAY_H_
class myarray
{
public:
myarray(int length);
myarray(const myarray&obj);
int length();
void setdata(int index, int value);
int getdata(int index);
~myarray();
protected:
private:
int mlength;
int *mspace;
public:
int& operator[](int i);
myarray& operator=(myarray &a1);//支持连等,返回一个引用当左值。
};
#endif
#define _ARRAY_H_
class myarray
{
public:
myarray(int length);
myarray(const myarray&obj);
int length();
void setdata(int index, int value);
int getdata(int index);
~myarray();
protected:
private:
int mlength;
int *mspace;
public:
int& operator[](int i);
myarray& operator=(myarray &a1);//支持连等,返回一个引用当左值。
};
#endif
array.cpp
#include "iostream"
using namespace std;
#include"array.h"
myarray::myarray(int length)
{
if (length < 0)
{
length = 0;
}
mlength = length;
mspace = new int[length];
}
int & myarray::operator[](int i)
{
return mspace[i];
}
myarray& myarray::operator=(myarray &a1)
{
int i = 0;
if (this->mspace != NULL)
{
delete[]mspace;
this->mlength = 0;
}
this->mlength = a1.mlength;
this->mspace = new int[a1.mlength];
for (i = 0; i < this->mlength; i++)
{
mspace[i] = a1[i];
}
return *this;
}
myarray::myarray(const myarray& obj)
{
if (mspace != NULL)
{
delete[]mspace;
this->mlength = 0;
}
mlength = obj.mlength;
mspace = new int[mlength];
for (int i = 0; i < mlength; i++)
{
mspace[i] = obj.mspace[i];
}
}
int myarray::length()
{
return mlength;
}
void myarray::setdata(int index, int value)
{
mspace[index] = value;
}
int myarray::getdata(int index)
{
return mspace[index];
}
myarray::~myarray()
{
mlength = -1;
delete[]mspace;
}
using namespace std;
#include"array.h"
myarray::myarray(int length)
{
if (length < 0)
{
length = 0;
}
mlength = length;
mspace = new int[length];
}
int & myarray::operator[](int i)
{
return mspace[i];
}
myarray& myarray::operator=(myarray &a1)
{
int i = 0;
if (this->mspace != NULL)
{
delete[]mspace;
this->mlength = 0;
}
this->mlength = a1.mlength;
this->mspace = new int[a1.mlength];
for (i = 0; i < this->mlength; i++)
{
mspace[i] = a1[i];
}
return *this;
}
myarray::myarray(const myarray& obj)
{
if (mspace != NULL)
{
delete[]mspace;
this->mlength = 0;
}
mlength = obj.mlength;
mspace = new int[mlength];
for (int i = 0; i < mlength; i++)
{
mspace[i] = obj.mspace[i];
}
}
int myarray::length()
{
return mlength;
}
void myarray::setdata(int index, int value)
{
mspace[index] = value;
}
int myarray::getdata(int index)
{
return mspace[index];
}
myarray::~myarray()
{
mlength = -1;
delete[]mspace;
}
mytest.cpp
#include "iostream"
using namespace std;
#include"array.h"
int main()
{
myarray a1(10);
for (int i = 0; i < a1.length(); i++)
{
//a1.setdata(i,i);
//a1.operator[] = i;
a1[i] = i;
}
for (int i = 0; i < a1.length(); i++)
{
printf("array %d:%d\n",i,a1[i]);
//a1.setdata(i, i);
}
myarray a2 = a1;
for (int i = 0; i < a2.length(); i++)
{
printf("array %d:%d\n", i, a2.getdata(i));
//a1.setdata(i, i);
}
myarray a3(20);
a2=a3 = a1;
for (int i = 0; i < a3.length(); i++)
{
printf("array %d:%d\n", i, a3[i]);
//a1.setdata(i, i);
}
system("pause");
return 0;
}
using namespace std;
#include"array.h"
int main()
{
myarray a1(10);
for (int i = 0; i < a1.length(); i++)
{
//a1.setdata(i,i);
//a1.operator[] = i;
a1[i] = i;
}
for (int i = 0; i < a1.length(); i++)
{
printf("array %d:%d\n",i,a1[i]);
//a1.setdata(i, i);
}
myarray a2 = a1;
for (int i = 0; i < a2.length(); i++)
{
printf("array %d:%d\n", i, a2.getdata(i));
//a1.setdata(i, i);
}
myarray a3(20);
a2=a3 = a1;
for (int i = 0; i < a3.length(); i++)
{
printf("array %d:%d\n", i, a3[i]);
//a1.setdata(i, i);
}
system("pause");
return 0;
}