Hello, i wrote such code.
Code:
template <typename T>
class CyclicalArray {
private:
	T* mem_ptr;
public:
CyclicalArray(size_t capacity, const T& default_value) {
		this->default_value = default_value;
		this->capacity = capacity;
		head_index = 0; 
		mem_ptr = ::new T[capacity]; //memory allocating
		for(T* p = mem_ptr; p < mem_ptr + capacity * sizeof(T); p +=
...