![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 18.02.2013
Сообщений: 60
|
![]()
Есть 3 класса : один - абстрактный,базовый(Item), 2 - производных(Book,Magazine).
Пример конструктора базового класса Item Код:
Код:
Код:
Вопрос: как создать массив объектов в зависимости от начальных данных, с дальнейшей инициализацией(используя конструктор с параметрами). С одним объектом все понятно: Код:
Помогите, пожалуйста. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Никак не сделать то, что хочется в данном виде.
Вообще я подозреваю, что неправильно задача решается. Нужно массив, в который заносятся и книги и журналы, а не только книги или журналы. Тут нужен не массив объектов, а массив указателей на базовый класс: Item **item; item = new Item*[count]; потом запрашивать у пользователя данные во временные переменные. Когда пользователь по текущему элементу всё ввёл, уже создавать объект item[n] = new Book(...); |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 18.02.2013
Сообщений: 60
|
![]()
Задание:
Цитата:
Последний раз редактировалось Stilet; 10.12.2014 в 18:57. |
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 18.02.2013
Сообщений: 60
|
![]()
Делаю так:
Код:
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
лучше заменить x = getchar(); на cin >> x
там свои нюансы с буферами. нужно либо перед getchar очищать буфер, чтобы запрос был именно с клавиатуры, а не какой-то хлам от предыдущих вводов с клавиатуры. Если используете cin для ввода, то везде его и используйте, так меньше подобных проблем будет. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 18.02.2013
Сообщений: 60
|
![]()
pu4koff, спасибо. Но не могли бы Вы еще мне помочь - продумать логику.
Вот,смотрите: Код:
Собственно сам вопрос : как мне прервать сам цикл for? |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Я бы проверку на ноль сделал до свича. Сразу после ввода х. А то сейчас получается, что пользователь вводит 0, говоря, что ему больше ничего не надо, а приходится сначала вбивать данные, которые потом никуда не запишутся.
Заодно в if можно спокойно написать break, который закончит цикл, а не свич. Вывод же данных я бы вынес за цикл for, а то сейчас пользователь увидит что ввёл только при условии, что обманул и решил закончить ввод до того, как вбил указанное в самом начале число элементов. Как-то так, в общем: Код:
Последний раз редактировалось Stilet; 10.12.2014 в 18:58. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 18.02.2013
Сообщений: 60
|
![]()
pu4koff, спасибо.
Код:
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не понятная проблема, адрес переменной класса у 2 объектов класса одинаков | Soeth | Общие вопросы C/C++ | 8 | 06.11.2013 05:10 |
[visual c++] инициализация статических членов класса | densvr | Помощь студентам | 0 | 10.02.2013 18:24 |
Инициализация элемента массива класса | VmanMaslov | Общие вопросы C/C++ | 10 | 15.02.2012 20:57 |
Инициализация матрицы методом класса | Jugger | Общие вопросы C/C++ | 4 | 20.10.2011 20:43 |
с++ инициализация статических елементов класса | p_alex | Помощь студентам | 5 | 25.10.2009 16:52 |