Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- template<class T>
- class CTablica
- {
- private:
- T* tab;
- public:
- int rozmiar;
- //konstruktor
- CTablica( int rozmiar );
- CTablica( T* tablica, int rozmiar );
- CTablica( CTablica& );
- ~CTablica() { delete[] tab; }
- void operator=(CTablica&);
- T& operator[](int);
- friend std::ostream& operator<< (std::ostream &wyjscie, CTablica& t)
- {
- for(int i = 0; i < t.rozmiar; i++)
- {
- wyjscie << t[i] << " ";
- }
- wyjscie << std::endl;
- return wyjscie;
- }
- private:
- void copy(CTablica& from);
- T* alokuj(int rozmiar);
- };
- template<class T>
- T& CTablica<T>::operator[](int index)
- {
- return tab[index];
- }
- template<class T>
- T* CTablica<T>::alokuj(int rozmiar)
- {
- this->rozmiar = rozmiar;
- T* nowa = new T[rozmiar];
- return nowa;
- }
- template<class T>
- CTablica<T>::CTablica(int rozmiar)
- {
- tab = alokuj(rozmiar);
- }
- template<class T>
- CTablica<T>::CTablica(T* tablica, int rozmiar)
- {
- tab = alokuj(rozmiar);
- for(int i = 0; i < rozmiar; i++)
- {
- tab[i] = tablica[i];
- }
- }
- template<class T>
- CTablica<T>::CTablica(CTablica& other)
- {
- if(this != &other)
- {
- tab = alokuj(other.rozmiar);
- copy(other);
- }
- }
- template<class T>
- void CTablica<T>::operator=(CTablica& other)
- {
- copy(other);
- }
- template<class T>
- void CTablica<T>::copy(CTablica& from)
- {
- for(int i = 0; i < from.rozmiar; i++)
- {
- tab[i] = from[i];
- }
- }
- int main()
- {
- srand(time(NULL));
- CTablica<int> tablica(10);
- for(int i = 0; i < tablica.rozmiar; i++)
- {
- tablica[i] = rand() % 20 + 1;
- }
- CTablica<int> tablica2(tablica);
- std::cout << tablica;
- std::cout << tablica2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement