#include #include #include #include template class Array { public: explicit Array(size_t size = 0, const T& value = T()) : size_(size), dat(reinterpret_cast(new char[sizeof(T[size])])) { for (size_t i = 0; i < size; ++i) { new (&dat[i]) T(value); } } Array(const Array & a) { size_=a.size(); dat= new T [size_]; for (size_t i = 0; i a(10, c); std::cout << a[5] << std::endl; }