All pastes #907810 Raw Edit

lalala oto klasa uzupelniona

public text v1 · immutable
·published 2008-02-17 22:12 UTC
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;
}