mansor_t
01-19-2008, 11:38 AM
السلام عليكم
يلي عندو تمارين برمجة 2
كلاس المصفوفة
#include<iostream.h>
#include<stdlib.h>
class array{
friend ostream &operator<<(ostream &,array &);
friend istream &operator>>(istream &,array &);
private:
int size;
int *ptr;
public:
array(int=10);
array(array &);
int getsize();
array &operator=(array &);
bool operator==(array &);
bool operator!=(array &);
int &operator[](int);
~array(){delete []ptr;}
};
array::array(int s)
{
size=(s>0?s:10);
ptr=new int[size];
for(int i=0;i<size;i++)
ptr[i]=0;
}
array::array(array &a)
{
size=a.size;
ptr=new int[size];
for(int i=0;i<size;i++)
ptr[i]=a.ptr[i];
}
int array::getsize()
{
return size;
}
array &array::operator =(array &a)
{
if(this!=&a)
{
if(size!=a.size)
{
size=a.size;
delete[]ptr;
ptr=new int[size];
}
for(int i=0;i<size;i++)
ptr[i]=a.ptr[i];
}
return *this;
}
bool array::operator ==(array &a)
{
if(size!=a.size)
return false;
for(int i=0;i<size;i++)
if(ptr[i]!=a.ptr[i])
return false;
return true;
}
bool array::operator !=(array &a)
{
return !(this->operator ==(a));
}
int &array::operator [](int id)
{
if(id<0 || id>=size)
{ cout<<"error id"<<endl;
exit(1);
}
return ptr[id];
}
ostream &operator<<(ostream &out,array &a)
{
for(int i=0;i<a.size;i++)
out<<a.ptr[i]<<endl;
return out;
}
istream &operator>>(istream &in,array &a)
{
for(int i=0;i<a.size;i++)
in>>a.ptr[i];
return in;
}
void main()
{
array a(5);
cout<<a;
cin>>a;
cout<<a[3]<<endl;
a[2]=15;
cout<<a[2]<<endl;
array a1(a);
cout<<a1;
cout<<a[15]<<endl;
}
يلي عندو تمارين برمجة 2
كلاس المصفوفة
#include<iostream.h>
#include<stdlib.h>
class array{
friend ostream &operator<<(ostream &,array &);
friend istream &operator>>(istream &,array &);
private:
int size;
int *ptr;
public:
array(int=10);
array(array &);
int getsize();
array &operator=(array &);
bool operator==(array &);
bool operator!=(array &);
int &operator[](int);
~array(){delete []ptr;}
};
array::array(int s)
{
size=(s>0?s:10);
ptr=new int[size];
for(int i=0;i<size;i++)
ptr[i]=0;
}
array::array(array &a)
{
size=a.size;
ptr=new int[size];
for(int i=0;i<size;i++)
ptr[i]=a.ptr[i];
}
int array::getsize()
{
return size;
}
array &array::operator =(array &a)
{
if(this!=&a)
{
if(size!=a.size)
{
size=a.size;
delete[]ptr;
ptr=new int[size];
}
for(int i=0;i<size;i++)
ptr[i]=a.ptr[i];
}
return *this;
}
bool array::operator ==(array &a)
{
if(size!=a.size)
return false;
for(int i=0;i<size;i++)
if(ptr[i]!=a.ptr[i])
return false;
return true;
}
bool array::operator !=(array &a)
{
return !(this->operator ==(a));
}
int &array::operator [](int id)
{
if(id<0 || id>=size)
{ cout<<"error id"<<endl;
exit(1);
}
return ptr[id];
}
ostream &operator<<(ostream &out,array &a)
{
for(int i=0;i<a.size;i++)
out<<a.ptr[i]<<endl;
return out;
}
istream &operator>>(istream &in,array &a)
{
for(int i=0;i<a.size;i++)
in>>a.ptr[i];
return in;
}
void main()
{
array a(5);
cout<<a;
cin>>a;
cout<<a[3]<<endl;
a[2]=15;
cout<<a[2]<<endl;
array a1(a);
cout<<a1;
cout<<a[15]<<endl;
}