Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class DynArray
- {
- int* arr;
- int size;
- public:
- DynArray(int pSize) : arr{ new int[pSize] {} }, size{ pSize } {std::cout << "DynArr constructed for " << size << " elements, for " << this << '\n'; };
- DynArray() : DynArray(5) {};
- DynArray(const DynArray& obj);
- DynArray& operator=(const DynArray& obj);
- int getElem(int idx) { return arr[idx]; };
- void setElem(int idx, int val) { arr[idx] = val; };
- void print();
- void randomize();
- ~DynArray() { if (arr) { std::cout << "this->arr = " << this->arr << '\n'; delete[] arr; }; std::cout << "DynArr destructed for " << size << " elements, for " << this << '\n'; };
- };
- void DynArray::print()
- {
- for (int i{ 0 }; i < size; ++i)
- {
- std::cout << arr[i] << ' ';
- }
- std::cout << '\n';
- }
- void DynArray::randomize()
- {
- for (int i{ 0 }; i < size; ++i)
- {
- arr[i] = rand() % 10;
- }
- }
- DynArray::DynArray(const DynArray& obj)
- : arr{ new int[obj.size] {} }, size{ obj.size }
- {
- for (int i{ 0 }; i < size; ++i)
- {
- arr[i] = obj.arr[i];
- };
- std::cout << "DynArr COPY constructed for " << size << " elements, for " << this << '\n';
- };
- DynArray& DynArray::operator=(const DynArray& obj)
- {
- if (this == &obj)
- {
- std::cout << "DynArr self assign PREVENTED! for " << this << '\n';
- return *this;
- }
- delete[] arr;
- arr = new int[obj.size]{};
- size = obj.size;
- for (int i{ 0 }; i < size; ++i)
- {
- arr[i] = obj.arr[i];
- };
- std::cout << "DynArr COPY assigned for " << size << " elements, for " << this << '\n';
- return *this;
- };
- void printDynArrEl(DynArray& arr, int idx)
- {
- std::cout << arr.getElem(idx) << ' ';
- }
- /*DynArray mkArray(int size)
- {
- DynArray arr{ size };
- arr.randomize();
- return arr;
- }*/
- int main()
- {
- //int x{ 42 };
- //x = x;
- //std::cout << "X = " << x << '\n';
- //return 0;
- std::cout << "arr1 creation\n";
- DynArray arr1{8};
- arr1.print();
- arr1.randomize();
- arr1.print();
- std::cout << "arr2 creation\n";
- DynArray arr2{};
- arr2.randomize();
- arr2.print();
- arr2 = arr1; // { arr2.arr = arr1.arr; arr2.size = arr1.size; }
- arr2.print();
- //arr1 = 'A';
- //arr1.print();
- //arr1.randomize();
- //std::cout << "arr1\n";
- //arr1.print();
- //DynArray arr2.{arr1}; //arr2.arr <= arr1.arr //arr2.size <= arr1.size <- this = &arr2
- //std::cout << "arr2\n";
- //arr2.print();
- //arr2.setElem(0, 333);
- //std::cout << "arr1\n";
- //arr1.print();
- //std::cout << "arr2\n";
- //arr2.print();
- }
Advertisement
Add Comment
Please, Sign In to add comment