![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Sleepman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.1.2005 Где: Санкт-Петербург Репутация: нет Всего: нет |
Господа!
Вариант вообще инициализировать массив в конструкторе по умолчанию - в списке инициализации?
Причем инициализировать так, чтобы было понятно - массив пуст. Допустим первому элементу присвоить инвалидное значение. Пытался писать так как в примере... еще пытался след образом data[0] (-1) *data (-1) Или это вообще никак нельзя сделать в списке инициализации? (в стандарт не залазил Благодарю за ответ! |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Я так никогда не пробовал...
По-моему, нельзя... Тут же ж дело в том, что вызываются конструкторы дочерних объектов, наверное... Хотя тоже в стандарт не залазил. |
|||
|
||||
| EvgenZ |
|
|||
![]() Freedom in me ![]() ![]() Профиль Группа: Участник Сообщений: 407 Регистрация: 3.8.2006 Репутация: 1 Всего: 11 |
cd(int i_num = 0, int m_num = 0): inv_number (i_num), man_number (m_num), name (0), descr(0) {
for(int i=0;i<dlinna_massiva;++i) data[i] = -1; } -------------------- <удалено администрацией форума> |
|||
|
||||
| Sleepman |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.1.2005 Где: Санкт-Петербург Репутация: нет Всего: нет |
нет, ну здесь используется не только список инициализаторов... а как бы использовать только его?... короче пошел шарить стандарт... )) |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 3 Всего: 73 |
Гм... А использовать конструктор по назначению религией запрещено? ЗЫ. я бы воспользовался ф-цией memset для установки в -1. -------------------- Теперь при чем :P |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
В списке инициализации массивы не инициализируются.
Если речь идет о массиве интов, то чем memset действительно не устраивает? -------------------- ... |
|||
|
||||
| UnrealMan |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Дык memset задаст только какое-то одно значение. А если нужен именно список значений, то memset не прокатит. В этом случае можно использовать что-то вроде
Этот код можно улучшить так, чтобы выявлялись некоторые ошибки времени компиляции (вроде слишком длинного списка). Это сообщение отредактировал(а) UnrealMan - 23.9.2006, 12:34 |
||||
|
|||||
| registered |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 30.8.2006 Репутация: нет Всего: 1 |
если нужен не инициализированный, то std::vector<int> data; тогда он просто пустой если нужно в конструкторе инициализировать значениями, что *.h
и инициализация *.cpp
|
||||||
|
|||||||
| SergeCpp |
|
||||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Не существует способа явного указания аргументов конструктора (за исключением использования списка инициализации) при объявлении массива
К счастью, это ограничение можно сравнительно легко обойти. Например, посредством введения локального класса
Так как локальные классы и их использование остались за рамками книги, далее приводится соответствующий раздел стандарта
...из книги Сергея Деревяго — C++ 3rd: комментарии |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |