/*
a) rozbudować klasę o 
     domniemany konstruktor inicjalizujący, +
     destruktor,                            +
     operator przypisania,                  -
   oraz metody: 
     wyprowadzającą tablicę na ekran i      +
     wyznaczającą wartość minimalną;        +
b) wykorzystać powyższą klasę i stosując mechanizm dziedziczenia napisać definicje klasy tablica2D,
 która będzie miała takie same metody operujące na tablicy dwuwymiarowej, przy czym szukanie
  minimum wykonać dla każdego wiersza osobno, a wynik zwrócić jako tablice wartości.
*/

#include <iostream.h>
class tablica1D{
      protected:
                int rozmiar1;
                int *tab;
      public:
                tablica1D();
                ~tablica1D();
                tablica1D operator=(const tablica1D&);
                void wysw();
                int min();
};

tablica1D::tablica1D()
{
 rozmiar1=10;//rand()%10;  //losujemy rozmiar tablicy
 tab=new int[rozmiar1];
 assert(tab);
 for(int i=0; i<rozmiar1;i++)
 {
         tab[i]=rand()%100;
 }
}

tablica1D::~tablica1D()
{
 delete [] tab;
}

void tablica1D::wysw()
{
for(int i=0; i<rozmiar1;i++)
 {
         cout<<tab[i]<<"\t";
 }       
}

int tablica1D::min()
{
 int minimum=tab[0];
 for(int i=1;i<rozmiar1;i++)
 {
         if(tab[i]<minimum)
         {
                       minimum=tab[i];
         }
 }
 return minimum;
}

tablica1D tablica1D::operator=(const tablica1D &k)
{
 if (this->tab != k.tab)
 {
 delete [] this->tab;
 this->rozmiar1=k.rozmiar1;
 tab=new int[this->rozmiar1];
 assert(tab);
 for(int i=0;i<this->rozmiar1;i++)
 {
         this->tab[i]=k.tab[i];
         cout<<"#71:"<<this->tab[i];
         cout<<"#72:"<<k.tab[i]<<endl;
 }
 }
 else
 cout<<"Nie mozna skopiowac tablica na sama siebie!\n";
 return *this;
}


int main()
{
    srand(time(NULL));
    tablica1D t1,t2;
    //tablica1D t2;
    cout<<"\nTablica:\n";
    t1.wysw();
    cout<<"\nMinimum: \t"<<t1.min()<<endl;
    cout<<"\nTablica:\n";
    t2.wysw();
    t2=t1;
    t2.wysw();

    system("pause");
    return 0;
}

