Объявление массива внутри класса и установка его размера с помощью конструктора

Я не работал с C ++ некоторое время, но я только начал проект с ним. Это может быть невозможно, но я пытаюсь создать шаблонный класс с массивом, который устанавливает его размер равным значению константы, которую я пытаюсь установить с помощью конструктора.

Это код конструктора:

Tarray(int s): start_size(s){
    }

Это код, который устанавливает размер массива:

const int start_size;
T this_array[start_size];

Это весь файл:

#ifndef TARRAY_H_
#define TARRAY_H_


template<typename T>
class Tarray {
private:
    const int start_size;
    T this_array[start_size];
    int array_size;
public:
    Tarray(int s): start_size(s){
    }
    ~Tarray(){
        delete[] this_array;
    }
    T & operator[](int i){
        return this_array[i];
    }
};



#endif /* TARRAY_H_ */

Вот ошибки, которые я получаю:

..\/template_array/Tarray.h:16:24: error: 'Tarray<T>::start_size' cannot appear in a constant-expression
..\/template_array/Tarray.h:16:34: error: 'new' cannot appear in a constant-expression
..\/template_array/Tarray.h:16:34: error: ISO C++ forbids initialization of member 'this_array' [-fpermissive]
..\/template_array/Tarray.h:16:34: error: making 'this_array' static [-fpermissive]
..\/template_array/Tarray.h: In instantiation of 'Tarray<Person>':
..\Human.cpp:17:24:   instantiated from here
..\/template_array/Tarray.h:16:34: error: invalid in-class initialization of static data member of non-integral type 'Person*'
Build error occurred, build is stopped
Time consumed: 343  ms. 

Сообщения об ошибках меняются, когда я пытаюсь настроить код, но это ошибки этой конкретной сборки.

Спасибо за любую помощь

Ответы на вопрос(5)

Ваш ответ на вопрос