#pragma once using ItemTypeT = int; // typedef int ItemTypeT // const ItemTypeT NO_ITEM{0}; class ArrayT { public: ArrayT(){}; ArrayT(size_t c); ArrayT(const ArrayT & src); ~ArrayT(); ArrayT & operator = (const ArrayT & src); void PushBack(ItemTypeT); void PopBack(); ItemTypeT & operator[] (size_t index); size_t Size() const; size_t Capacity() const; private: size_t size{0}, capacity{0}; ItemTypeT * data{nullptr}; };