rendered paste body#include <cstdlib>
#include <iostream>
using namespace std;
class ABC {
private:
double* tab;
unsigned int ilosc;
public:
ABC(unsigned int);
ABC(const ABC&);
void operator+=(const ABC&);
ABC operator--(int);
friend ABC operator+(const float w, ABC&);
ABC& operator=(const ABC& wzor);
void wypisz();
void zapelnij(double x);
};
ABC :: ABC(unsigned int ile = 5){
ilosc = ile;
tab = new double[ilosc];
for(int i=0; i<ilosc; i++)
tab[i]=0;
}
ABC :: ABC(const ABC& wzor){
ilosc = wzor.ilosc;
tab = new double[ilosc];
for(int i=0; i<ilosc; i++)
tab[i] = wzor.tab[i];
}
void ABC :: operator+=(const ABC& wzor){
if(ilosc == wzor.ilosc){
for(int i=0; i<ilosc; i++)
tab[i] = wzor.tab[i] + tab[i];
} else
if(ilosc > wzor.ilosc){
for(int i=0; i<wzor.ilosc; i++)
tab[i] = wzor.tab[i] + tab[i];
} else
if(ilosc < wzor.ilosc){
double* tmp = new double[wzor.ilosc];
for(int i=0; i<ilosc; i++)
tmp[i] = wzor.tab[i]+tab[i];
for(int i=ilosc; i<wzor.ilosc; i++)
tmp[i] = wzor.tab[i];
tab = tmp;
ilosc = wzor.ilosc;
}}
ABC ABC :: operator--(int){
ABC tmp(ilosc);
for(int i=0; i<ilosc; i++)
tmp.tab[i] = tab[i]-1;
return tmp;
}
ABC operator+(const float w, ABC& obj){
ABC tmp(obj.ilosc);
for(int i=0; i<obj.ilosc; i++)
tmp.tab[i] = obj.tab[i]+w;
return tmp;
}
ABC& ABC :: operator=(const ABC& wzor){
delete [] tab;
tab = new double[wzor.ilosc];
for(int i = 0; i< wzor.ilosc; i++)
tab[i] = wzor.tab[i];
ilosc = wzor.ilosc;
return *this;
}
void ABC :: wypisz(){
cout<<"ILOSC ELEM: "<<ilosc<<endl;
for(int i = 0; i<ilosc; i++)
cout<<tab[i]<<" ";
cout<<endl;
}
void ABC :: zapelnij(double x){
for(int i = 0; i<ilosc; i++)
tab[i] = x;
}
int main(int argc, char *argv[])
{
ABC ob1, ob2(30);
ob1.wypisz();
ob2.wypisz();
ABC ob3(ob2);
ob3.wypisz();
ob1.zapelnij(5);
ob2.zapelnij(2);
ob1.wypisz();
ob2.wypisz();
ob1+=ob2;
ob1.wypisz();
ob2 = 1.0f + ob3;
ob2.wypisz();
ob3 = ob1--;
ob3.wypisz();
system("PAUSE");
return EXIT_SUCCESS;
}