![]() |
|
Модераторы: bsa |
![]()
|
|
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
почему в конструкторе нельзя массиву присвоить нулевые значения таким образом? |
|||
|
||||
| LavYaAll |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 62 Регистрация: 1.5.2008 Репутация: 1 Всего: 1 |
yngwie19, если меня не подводит память, то так можно делать только при инициализации массива во время его обьявления(но ведь в обьявлении класса это невозможно), но никак не при простом присвоении. Если хочешь разом все обнулить, то попробуй использовать для этого memset, если не хочешь проходиться по массиву в цикле.
Это сообщение отредактировал(а) LavYaAll - 11.8.2008, 10:22 |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
yngwie19, ты обращаешься за преелы массива.
у него последний элемент - array[19] -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| LavYaAll |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 62 Регистрация: 1.5.2008 Репутация: 1 Всего: 1 |
ksili, так это вообще не сработает, даже если с array[19].
Потому что ему хочется внутри тела конструктора обнулить весь массив. Для чего поставил {}. |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
сообщение об ошибке какое?
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| LavYaAll |
|
||||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 62 Регистрация: 1.5.2008 Репутация: 1 Всего: 1 |
ksili, только что пытался откомпилить.
Выдает:
Версия студии: MSVS 2008 Team Suite Не будет это компилиться. Это только при инициализации запашет. Это сообщение отредактировал(а) LavYaAll - 11.8.2008, 10:52 |
||||
|
|||||
| ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Я вообще свои классы пишу очень редко и не очень во всем этом разбираюсь, но имхо какой смысл в конструкторе, если в нём нельзя задать значения членов класса? Это же одна из его основных функций. При желании в конструкторе можно даже инициализировать константные члены. Так что я думаю там что-то не так с синтаксисом
Добавлено через 1 минуту и 46 секунд LavYaAll, это совсем другой пример - не то, что у автора топика.
это кажись вообще бред какой-то. если вы хотите задать значение элемента массива, то так и пишите:
-------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
| LavYaAll |
|
|||
![]() Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 62 Регистрация: 1.5.2008 Репутация: 1 Всего: 1 |
||||
|
||||
| cutwater |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 592 Регистрация: 24.6.2008 Репутация: 2 Всего: 10 |
Читайте мануалы. Автор хочет обнулить массив в конструкторе, но такое выражение применимо только при инициализации.
То есть запись вида
Обнуляет массив (если полезть внутрь, то это вызов того же memset) В фигурных скобках указываются последовательно начальные значения для элементов массива, если список инициализации меньше чем элементов массива, остальные инициализируются нулями. ksili ты не прав Это сообщение отредактировал(а) cutwater - 11.8.2008, 11:13 |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
cutwater Спасибо. Я разобрался. Действительно массиву присваиваются начальные значения всех элементов только при его инициализации. А мы вроде как инициализировали в классе.
Добавлено через 2 минуты и 30 секунд cutwater Спасибо. Я разобрался. Действительно массиву присваиваются начальные значения всех элементов только при его инициализации. А мы вроде как инициализировали в классе. Это сообщение отредактировал(а) yngwie19 - 11.8.2008, 11:18 |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |