![]() |
|
Модераторы: bsa |
![]()
|
|
| AZNMABS |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 5.9.2013 Репутация: нет Всего: нет |
Предположим есть класс MyClass, в котором реализован массив целых чисел с контролем диапазона. В классе перегружен оператор индексирования [], т.е. можно написать так:
Вопрос вот в чем: для встроенных типов массив можно объявить так:
Обратите внимание, скобки квадратные. В случае с классом, объект класса объявляется как показано выше, т.е.:
(здесь скобки круглые). Так вот, для данного конкретного класса (реализующий массив) можно ли объявить массив как для встроенных типов, т.е. так:
Я пробовал так, но компилятор выдает кучу ошибок. |
||||||||
|
|||||||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Скорее всего, компилятор ругается на отсутствие у твоего класса конструктора без параметров. Только имей в виду, если твой класс MyClass это фактически массив, то MyClass ob[10] - это будет массив массивов. |
|||
|
||||
| AZNMABS |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 5.9.2013 Репутация: нет Всего: нет |
Вопрос возник при разборе примера из книги Х. Дейтел, П. Дейтел "Как программировать на C++", изд. 4, глава 8, п/п 8.8. Учебный пример: класс массив. Конструктора без параметров в оригинале не было, но я его включил. Привожу код. Файл array.h:
файл array.cpp:
Файл driver.cpp:
Здесь, честно говоря, я Вас не понял. Если можно, по подробнее пожалуйста! |
||||||||||
|
|||||||||||
| AZNMABS |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 5.9.2013 Репутация: нет Всего: нет |
Действительно получается массив массивов! Вот так работает:
Файл array.h:
файл array.cpp:
Файл driver.cpp:
Кстати, конструктор по умолчанию здесь не обязателен! |
||||||
|
|||||||
| ТарасАтавин |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 370 Регистрация: 26.8.2013 Репутация: нет Всего: нет |
Не удивительно. Встроенные типы скалярны, чтоб сделать массив, надо указать это явно, что и выглядит, как
Это сообщение отредактировал(а) ТарасАтавин - 6.9.2013, 07:19 -------------------- Не так всё плохо, как оно есть на самом деле. |
||||||
|
|||||||
![]()
|
| Правила форума "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. |