0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 9
1

Конструктор с параметрами

11.08.2019, 05:39. Показов 309. Ответов 2

Добрый день. Я не считаю, что задавать вопросы в стиле (Я не могу решить задание на степике, помогите) это хороший вариант, но тут я немного в тупике.

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

C++
1
Array<char> a(4,'b');
- Я надеюсь правильно написал.

но вот с этим - const T& value = T() - я просто не знаю что делать и где и что узнать как это вообще работает?

если что Т это template <typename T>

я конечно понимаю, что это можно переписать так - const char& value = char() - но что это такое я вообще не понимаю.


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
explicit Array(size_t size = 0, const T& value = T())
        :size_(size)
    {
        data = new T[size];
        for (int i = 0; i < size; i++)
        {
            data[i] = value;
        }
        //data[size] = '\0'; -кстати, кому не лень, разве завершающим в массиве не является '\0' ?? мне выдают ошибку выход за пределы массива.
    }
    //   конструктор класса, который создает
    //   Array размера size, заполненный значениями
    //   value типа T. Считайте что у типа T есть
    //   конструктор, который можно вызвать без
    //   без параметров, либо он ему не нужен.
    //

Заранее прошу не негативить, я просто учусь. И с подобными передачами данных я не сталкивался и мне никто не обьяснял, если кто может подсказать куда и что, я буду благодарен.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2019, 05:39
Ответы с готовыми решениями:

Создать класс. Написать конструктор по умолчанию, конструктор с параметрами. Перегрузить операции «меньше» и «равно»
Помогите пожалуйста, хоть с одним из заданий. 1. Создать класс. Написать конструктор по...

Конструктор с параметрами
Не получается конструктор с параметром.. помогите пожалуйста! вот весь класс, нужно чтобы можно...

Конструктор с параметрами
Забыл как выводить конструктор с параметрами, пробую так не выходит. #include &lt;iostream&gt; using...

Конструктор с параметрами
Доброе время суток! Суть вопроса вот в чем: Есть класс Game, в котором создаю объект с...

2
Модератор
Эксперт С++
11113 / 9155 / 5502
Регистрация: 18.12.2011
Сообщений: 24,460
11.08.2019, 06:40 2
Цитата Сообщение от Peccatum Посмотреть сообщение
size_t size = 0, const T& value = T()
Означает, что если метод вызавается без параметров, то size будет равно нулю,
а value будет равно тому значению, которое ей присвоит конструктор объекта T без параметров.

Добавлено через 2 минуты
Цитата Сообщение от Peccatum Посмотреть сообщение
разве завершающим в массиве не является '\0'
Причем здесь это? Шаблон написан для любых типов. Он выделяет память ровно под size элементов и заполняет их указанным значением.
2
0 / 0 / 0
Регистрация: 21.04.2019
Сообщений: 9
11.08.2019, 06:54  [ТС] 3
Спасибо большое. И можете ли подсказать ещё по двум вопросам? Ну или хотя бы намекнуть. Можно ли считать данную форму оператора = допустимой?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    Array & operator = (Array const & Array2)
    {
        if (this != &Array2)
        {
            delete[] data;
            this->size_ = Array2.size_;
            this->data = new T(this->size_);
            //size_ = Array2.size_;
            for (int i = 0; i != this->size_; i++)
            {
                this->data[i] = Array2.data[i];
            }
        }
        return *this;
    }
и как понять разницу у двух методов
C++
1
2
3
4
5
6
7
8
        T & operator[](size_t z)
    {
        return data[z];
    }
    const T& operator[](size_t z) const
    {
        return data[z];
    }
Я конечно логически понимаю, один не позволит изменять значение что вернул, но разве можно перегружать методы только по возвращаемому значению? Заранее спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.08.2019, 06:54

Не отображается конструктор с параметрами
// рншр.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot;...

Конструктор с параметрами по умолчанию
пытаюсь создать класс с параметрами по умолчанию(я да, надеюсь, что я не путаюсь в терминах) ...

Классы и конструктор по умолчанию/с параметрами
Помогите пожалуйста! Необходимо сконструировать класс с заданным набором свойств. В данном случае,...

Как реализовать конструктор с параметрами?
#include &lt;locale.h&gt; #include &lt;iomanip&gt; using namespace std; class Human { protected: char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.