0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 91
|
|
1 | |
Стандартный векторный контейнер14.08.2013, 17:09. Показов 1471. Ответов 7
Метки нет (Все метки)
"Обычно элементы создаются с помощью оператора new() и освобождаются с помощью оператора delete(), т.е. для создания нового элемента вызывается стандартный конструктор класса Т. Это служит еще одним аргументом в пользу явного определения стандартного конструктора в создаваемых классах. Если этого не сделать, то нельзя будет использовать стандартный векторный контейнер для хранения объектов пользовательского класса"
Вопрос: почему для использования стандартного векторного контейнера необходимо явно определять стандартный конструктор класса? Ведь, стандартный конструктор класса, даже, если мы его не определили, он все равно создается компилятором.
0
|
14.08.2013, 17:09 | |
Ответы с готовыми решениями:
7
Класс как стандартный контейнер Приватный конструктор и стандартный контейнер. Два барана на мосту Как динамически создать стандартный контейнер данных с элементами такого же типа, как полученный экземпляр? Стандартный контрол (контейнер) который мог бы в себе содержать элементы управления. |
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 91
|
|
14.08.2013, 17:18 [ТС] | 3 |
0
|
Неэпический
|
|
14.08.2013, 17:27 | 4 |
1
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||||||
14.08.2013, 18:07 | 5 | |||||
0
|
14.08.2013, 18:25 | 6 | ||||||||||
1
|
Комп_Оратор)
|
|||||||||||||||||||||
14.08.2013, 18:31 | 7 | ||||||||||||||||||||
Erjay, у шаблона вектор много конструкторов и не обязательно требовать наличие конструктора по умолчанию. Тему проще понять на примере инициализации динамического массива.
Дело в том, что при выделении памяти под переменную одиночного значения, язык предоставляет возможность сразу его инициализировать необходимым значением:
Зато если есть конструктор по умолчанию (от компилятора или определённый явно, неважно), то компилятор знает что ему делать видя запись:
1
|
14.08.2013, 18:36 | 8 |
Для того что бы в дальнейшем не думать откуда ошибки лезут...
Если конструируешь класс то нужно предусмотреть стандартный, полный и понятный интерфейс для другого программиста... Если "конструкция" изначально специфическая то естественно чего-то может не быть или работать не стандартно, в том числе какого-то конструктора может не быть...
1
|
14.08.2013, 18:36 | |
14.08.2013, 18:36 | |
Помогаю со студенческими работами здесь
8
Заменить контейнер vector, использовавшийся для хранения текстовых строк (листинг 2.3), на контейнер list векторный анализ Векторный макет Векторный анализ Графический векторный редактор Векторный анализ - основы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |