#ifndef _ARR_H
#define _ARR_H
class Myarr
{
public:
Myarr(int length);
Myarr(const Myarr &a);
int getlength();
void setdata(int index, int data);
int getdata(int index);
~ Myarr ();
int & operator [](int i);
Myarr operator =(Myarr &a);
bool operator ==(Myarr &a);
bool operator !=(Myarr &a);
int length, *space;
};
#endif
#include"arr.h"
#include<stdlib.h>
Myarr::Myarr(int length)
{
this->length = length;
this->space = (int *)malloc(sizeof(int)*this->length);
}
Myarr::Myarr(const Myarr &a)
{
length=a.length;
space = new int[a.length];
}
int Myarr::getlength()
{
return length;
}
void Myarr::setdata(int index, int data)
{
space[index] = data;
}
int Myarr::getdata(int index)
{
return space[index];
}
Myarr::~Myarr()
{
this->length = 0;
free(this->space);
}
int & Myarr::operator [](int i)
{
return space[i];
}
Myarr Myarr::operator =(Myarr &a)
{
this->length=a.length ;
if (this->space != NULL)
free(this->space);
this->space = (int *)malloc(sizeof(int)*a.length);
for (int i = 0; i < a.length; i++)
{
space[i] = a[i];
}
return *this;
}
bool Myarr::operator ==(Myarr &a)
{
for (int i = 0; i < length; i++)
{
if (this->space[i] != a.space[i])
return false;
}
return true;
}
bool Myarr::operator !=(Myarr &a)
{
for (int i = 0; i < length; i++)
{
if (this->space[i] == a.space[i])
return false;
}
return true;
}
#include"arr.h"
#include<iostream>
#include<stdio.h>
int main()
{
Myarr a(10),b(10);
for (int i = 0; i < 10; i++)
{
a.setdata(i, i + 1);
}
b = a;
for (int i = 0; i < 10; i++)
{
printf("%d\n",b[i]);
}
printf("%d\n", a == b);
printf("%d\n", a != b);
system("pause");
return 0;
}