Синтаксически правилен ли мой код?
Код ниже, хочу узнать, правильно ли мой код написан (в плане ошибок оформления кода)
это структура, которая состоит из массива и некоторых функций, необходимых для него
template <typename T>
struct FlexArray{
size_t size=0;
T* arr;
FlexArray() {
arr = new T[size];
}
FlexArray(size_t sizem): size(sizem){
arr = new T[size];
}
T& at(size_t i){
return arr[i];
}
const T& at(size_t i) const {
return arr[i];
}
const size_t& Size() const {
return size;
}
FlexArray<T>& operator += (const FlexArray<T>& other){
FlexArray<T> new_arr(size+other.size);
for (int i=0;i<size;i++){
new_arr.arr[i]=arr[i];
}
for (int i=0;i<other.size;i++){
new_arr.arr[size+i]=other.arr[i];
}
delete [] arr;
size=new_arr.size;
arr=new_arr.arr;
return *this;
}
FlexArray<T>& operator=(const FlexArray<T>& c){
delete[] arr;
size=c.size;
arr = new T[size];
for (int i=0;i<size;i++){
arr[i]=c.arr[i];
}
return *this;}
FlexArray<T> operator+(const FlexArray<T>& l){
FlexArray<T> new_arr(size+l.size);
new_arr=*this;
new_arr+=l;
return new_arr;}
FlexArray<T>& operator *= (size_t fact){
FlexArray<T> new_arr(size*fact);
for(int i=0;i<fact;i++){
for(int j=0;j<size;j++){
new_arr.arr[i*size+j]=arr[j];
}
}
*this=new_arr;
return *this;}
FlexArray<T> operator*(size_t f){
FlexArray<T> new_arr(size);
for (int i=0;i<size;i++){
new_arr.arr[i]=arr[i];
}
new_arr*=f;
return new_arr;}
};
template <typename T>
FlexArray<T> operator*(size_t f, const FlexArray<T>& arr){
FlexArray<T> new_arr(arr.size);
for (int i=0;i<arr.size;i++){
new_arr.arr[i]=arr.arr[i];
}
new_arr*=f;
return new_arr;}```