A Class named 'intarray' which can store an integer array of different size.
- This Class contains::
- O Constructor with deafault argument value
- At the time of Object creation if array size is missing then An array of size 0 will be created.
- O Copy Constructor
- This Constructor is used to create a new Object from an existing Object.
- O Overloaded Operator =
- This operator is overloaded to assign an intarray object into another object, simply as two integer variables can be made.
- O Overloading Operator [ ]
- As array element can be reffered by its position declaring in Subscript operator ( [ ] ), here every element of an object array can be reffered by [ ] operator.
- O Overloading Operator >>
- This is an input operator. Here we can take input to a object simply by this line cin >> a;. Here a is an intarray object.
- O Overloading Operator <<
- This is an output operator. Here we can get the output of an intarray object by this line cout << a;. Here a is an intarray object.
- O Destructor
- It will free-up the memory space allocated for an object.
#include<iostream.h>
class intarray{
// Data Members
int *a; //Integer pointer to hold the address of integer array
long int size; //Array size
public:
//Member Functions
intarray(int s=0) //Constructor with default value
{
size=s;
if(s) a=new int[s]; else a=NULL;
}
intarray(intarray &t); // Declaration of Copy Constructor
int& operator[](long int i) //[ ] operator overloading function definition
{
if(i>=0) return a[i]; else return a[size+1];
}
intarray operator = (intarray &t); // = operator overloding function declaration
friend istream& operator >> ( istream &in, intarray &t); //Opeartor overloading for input Array elements
friend ostream& operator << ( ostream &out, intarray &t); //Operator overloading for Display Array Content
~intarray(void) //Destructor Definition
{
delete [] a;
}
}
intarray::intarray(intarray &t) //Definition of Copy Constructor
{
size=t.size;
if(size)
{
a=new int[size];
for(long i=0; i<size;i++)
a[i]=t.a[i];
}
else
a=NULL;
}
intarray intarray::operator = ( intarray &t) //Definition of = Operator Overloading function
{
if(size)
delete [] a;
size=t.size;
if(size)
{
a=new int[size];
for(long i=0; i<size;i++)
a[i]=t.a[i];
}
else
a=NULL;
return *this;
}
istream& operator >> ( istream &in, intarray &t) //Definition of >> Operator Overloading function
{
for(long i=0; i<t.size;i++)
in>>t.a[i];
return in;
}
ostream& operator << ( ostream &out, intarray &t) //Definition of << Operator Overloading function
{
if(t.size)
out<< t.a[0];
for(long i=1;i<t.size;i++)
out<<'|'<< t.a[i];
out<< endl;
return out;
}
void main() //main() function starts from here
{
intarray a(5);
cout<<"Enter the array element::\n";
cin>>a;
cout<<"The Array contains:: \n"<< a;
intarray b(a);
cout<<"Here is the Copy of First Array::\n"<< b;
cout<<"3rd element of the Array is:: "<< a[2];
a[2]=7;
cout<<"\nAfter modifying the 3rd element to 7::\n"<< a;
}
Comments