Advertisement
MeehoweCK

Untitled

May 30th, 2024
650
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.67 KB | None | 0 0
  1. #pragma once
  2.  
  3. template <typename T>
  4. class Znak {
  5.     int rozmiar{};
  6.     T** tab{ nullptr };
  7. public:
  8.     Znak() = default;
  9.     ~Znak();
  10.     void operator+=(T* obiekt);
  11.     T*& operator[](int index);
  12.     const T*& operator[](int index) const;
  13. };
  14.  
  15. template <typename T>
  16. Znak<T>::~Znak() {
  17.     if (rozmiar > 0) {
  18.         for (int i{}; i < rozmiar; ++i) {
  19.             delete tab[i];
  20.         }
  21.         delete[] tab;
  22.     }
  23. }
  24.  
  25. template <typename T>
  26. void Znak<T>::operator+=(T* obiekt) {
  27.     if (rozmiar == 0) {
  28.         tab = new T * [1];
  29.     }
  30.     else {
  31.         T** temp{ new T * [rozmiar + 1] };
  32.         for (int i{}; i < rozmiar; ++i) {
  33.             temp[i] = tab[i];
  34.         }
  35.         delete[] tab;
  36.         tab = temp;
  37.     }
  38.     tab[rozmiar] = obiekt;
  39.     ++rozmiar;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement