35657

Untitled

May 26th, 2023
667
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.45 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class DynArray
  4. {
  5.     int* arr;
  6.     int size;
  7. public:
  8.     DynArray(int sizeP)
  9.         : arr{ new int[sizeP] {} }, size{ sizeP }
  10.     {
  11.         std::cout << "DynArr constructed for " << size << " elements, for " << this << '\n';
  12.     }
  13.     DynArray() : DynArray(5) {}
  14.  
  15.     DynArray(const DynArray& object)
  16.         : arr{ new int[object.size] }, size{ object.size }
  17.     {
  18.  
  19.         for (int i{ 0 }; i < size; ++i)
  20.         {
  21.             arr[i] = object.arr[i];
  22.         };
  23.  
  24.         std::cout << "DynArr copy constructed for " << size << " elements, for " << this << '\n';
  25.     }
  26.  
  27.  
  28.     int getElem(int idx) { return arr[idx]; }
  29.     void setElem(int idx, int val) { arr[idx] = val; }
  30.     void print();
  31.     void randomize();
  32.     ~DynArray()
  33.     {
  34.         std::cout << "Try to free memory from DynArray for " << arr << " pointer\n";
  35.         delete[] arr;
  36.         std::cout << "DynArr destructed for " << size << " elements, for " << this << '\n';
  37.     }
  38. };
  39.  
  40. void DynArray::print()
  41. {
  42.     for (int i{ 0 }; i < size; ++i)
  43.     {
  44.         std::cout << arr[i] << ' ';
  45.     }
  46.     std::cout << '\n';
  47. }
  48.  
  49. void DynArray::randomize()
  50. {
  51.     for (int i{ 0 }; i < size; ++i)
  52.     {
  53.         arr[i] = rand() % 10;
  54.     }
  55. }
  56.  
  57.  
  58. int main()
  59. {
  60.     DynArray ar1{ 10 };
  61.     ar1.randomize();
  62.     std::cout << "ar1 elements: ";
  63.     ar1.print();
  64.  
  65.     DynArray ar2{ ar1 };
  66.     std::cout << "ar2 elements: ";
  67.     ar2.print();
  68.  
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment