ZhenyaMak
@ZhenyaMak
Писать качественный софт? Пфф, это не для меня.

Ошибка в конструкторе при передаче массива c++?

Выдаёт ошибку. Как передать в аргументы массив?
template<class T, int Size> class Array
{   private:
    T* arr;
    int length;
    
    public:
    Array()
    {
        this-> length = Size;
        this-> arr = new T[Size];
    }
        
    Array(const T* array)
    {
        this-> arr = new T[Size];
        for (unsigned i = 0; i < Size; i++)
            this-> arr[i] = array[i];
        this-> length = Size;
    }
};

int main()
{
    Array<int, 3> arr { 90,90 };
}
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Ну вы бы хоть ошибку-то саму привели. Уважайте отвечающих.

Вот так работает:
int data[] = {90, 90};
Array<int, 3> arr (data);


Ну не может компилятор по Array<int, 3> arr { 90,90 }; догадаться, что {90, 90} - это числа в массиве, адресс которого надо передать.

Кстати, у вас тут ошибка: Array вы создали на 3 элемента и копируете 3 элемента, а данных задали только 2.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы