#include <iostream>
#include <assert.h>
using namespace std;
//Start OF Array Class -->
class Array{
private:
unsigned int size;
int *pInteger;
public:
//מאתחל את המחלקה
Array(){
size = 0;
pInteger = new int;
assert(*pInteger!=0);
};
//קופי קונסטרקטור
Array(const Array& CArray)
{
pInteger = new int(*(CArray.pInteger));
//assert(CArray.pInteger!=0);
size = CArray.size;
};
//הגדרת משתנה ריק עם מספר במערך
Array(int sizeofArray)
{
size = sizeofArray;
pInteger = new int;
assert(*pInteger!=0);
};
~Array()
{
delete this->pInteger;
};
Array AddRows(const Array& , const Array&);
void SetRows(int ,int);
void PrintRows();
int& operator (const int);//subscript operator
const int& operator (const int )const;//subscript operator
};
void Array::SetRows(int arr, int newsize)
{ // פונקצייה שמיישמת הצבה למשתנה
delete pInteger;
pInteger = new int;
size = newsize;
for (int i=0;i<size;i++)
*((pInteger)+i) = arr;
}
void Array::PrintRows()
{
int i;
for(i=0;i<size;i++)
cout << pInteger << "\n";
}
Array Array::AddRows(const Array &farray, const Array &sarray)
{ int i ;
if ( farray.size > sarray.size )
{
Array result(farray.size);
for (i=0;i<sarray.size;i++)
result = farray + sarray;
for (i=sarray.size;i<farray.size;i++)
result = farray;
for (i=0;i<6;i++)
cout << result << "\n" ;
return result;
}
else
{ Array result(farray.size);
return result;
}
return farray;
}
int& Array::operator (const int index)//left side
{
if(index>=0 && index < size)
return pInteger;
else
cerr<<"Out of boundary of array:"<<endl;
exit(1);
}
const int& Array::operator (const int index)const //rigth side
{
if(index>=0 && index <= size)
return pInteger;
else
cerr<<"Out of boundary of array:"<<endl;
exit(1);
}
int main()
{ int data;
data = 1;
data = 7;
data = 4;
data = 3;
data = 5;
data = 9;
Array one,two;
one.SetRows(data,6);
data = 3;
data = 6;
data = 1;
data = 8;
two.SetRows(data,4);
//tree = two.AddRows(one,two); <=- לא עובד לי!
Array tree(two.AddRows(one,two));
//tree.PrintRows();
}