|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.06.2012, 18:27 | #1 |
Регистрация: 09.06.2012
Сообщений: 7
|
Массив указателей на производные классы
Здравствуйте,
есть базовый класс строка mystring Код:
Код:
Все методы для классов написал, но когда дошел до приведенных заданий заданий вообще не понимаю как это организовать Написать тестовую программу, которая: * динамически выделяет массив указателей на базовый класс (4-6 шт.); * в режиме диалога заполняет этот массив указателями на производные классы, при этом экземпляры производных классов создаются динамически с заданием начальных значений; * для созданных экземпляров производных классов выполняется проверка всех разработанных методов (в соответствии с вариантом задания), с выводом исходных данных и результатов на дисплей. * для конструкторов копирования каждого класса предусмотреть диагностическую печать количества его ввызовов в заданное место дисплея, (рекомендуется использовать статические члены класса). Режим диалога обеспечивается с помощью иерархического меню. Не понятно даже как это в консоли реализовать, не то что с windows forms Пожалуйста приведите фрагмент кода, если можно, спасибо вот моя попытка первый и второй пункт реализовать Код:
|
09.06.2012, 18:42 | #2 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
ну, видимо, как-то так
Код:
Форматируйте код, будьте людьми.
|
09.06.2012, 19:48 | #3 | ||
Регистрация: 09.06.2012
Сообщений: 7
|
Цитата:
Код:
Можно еще вопрос? Цитата:
но Код:
где p[a] , p[b] , p[c] из прошлого отрывка кода(операции +, = переопределены и для complex, и для identification) Последний раз редактировалось number0ne; 09.06.2012 в 19:52. |
||
09.06.2012, 19:51 | #4 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Что именно не работает?
Форматируйте код, будьте людьми.
|
09.06.2012, 19:54 | #5 |
Регистрация: 09.06.2012
Сообщений: 7
|
|
09.06.2012, 19:58 | #6 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
У Вас в базовом классе операция сложения не определена. Подозреваю, Вам нужно сделать в mystring виртуальный оператор сложения. Да, неплохо бы перед сложением удостовериться, что типы всех объектов совпадают, иначе будете складывать identification с complex.
Форматируйте код, будьте людьми.
|
09.06.2012, 20:55 | #7 | |
Регистрация: 09.06.2012
Сообщений: 7
|
Цитата:
вот сделал чето сам не пойму че так вроде работает, но только если все в указатели на комплексное число делать или только на строку идентификатор, а как и на то и на другое шоб автоматом определял хз Код:
|
|
09.06.2012, 21:02 | #8 |
С++
Форумчанин
Регистрация: 22.09.2008
Сообщений: 791
|
Вы знаете, что такое виртуальные функции? Если нет, то почитайте, это и есть решение Вашего вопроса. Если да, то таких вопросов у Вас не должно возникать.
Форматируйте код, будьте людьми.
|
09.06.2012, 21:03 | #9 |
Регистрация: 09.06.2012
Сообщений: 7
|
|
10.06.2012, 10:37 | #10 | ||
Регистрация: 09.06.2012
Сообщений: 7
|
Теперь не могу разобраться со второй частью задания
Программа должна иметь меню и окна для отображения необходимой информации. Предлагается следующая организация работы программы: Первоначально пункты меню "Тестирование" и "Начальные значения" запрещены. После ввода числа создаваемых объектов по пункту меню "Кол-во элементов" этот пункт запрещается и разрешается пункт "Начальные значения". При этом на экране появляется окно [1] с количеством пронумерованных строк в соот- ветствии со значением N, введенным ранее как число создаваемых объектов и окно [2] для последующего вывода в него информации об отработке соответ- ствующих конструкторов и деструкторов. Пункт меню "Тестирование" разрешается после ввода начальных значений хотя бы для одного объекта. Все сформированные в процессе создания объектов строки отображаются в окне [1] в соответствуюшей введенному номеру объекта строке с указанием типа созданного объекта. Если в процессе тестирования значение объекта изменяется, то новое значение также должно отобразиться в окне [1]. Пункт меню "Операнды" служит для ввода номеров операндов, над которыми будут производиться выбранные действия. Количество операндов может быть от одного до трех (в зависимости от выбранного для тестирования метода). Для операций "сложение", "вычитание","умножение","делени е" обязательно использование трех операндов ( два - над которыми производится действие и один - куда будет помещен результат ). Инициализация (или изменение значения и типа) одного или нескольких объектов производного класса может производиться в любой момент времени после ввода количества создаваемых значений без изменения значений и типа других ранее проинициализированых объектов. Допускается отсутствие пункта меню "Операнды" - в этом случае запрос номеров операндов осуществляется сразу после выбора соответствующего метода для тестирования. Необходимо также предусмотреть вывод различной диагностической информации ( сообщения об ошибках, результат работы тестируемых методов не изменяющих значение тестируемого объекта и т.п. ) Поскольку методы базового класса должны быть доступны объектам производных классов, создаются и инициализируются только объекты производных классов. Программа должна осуществлять полный контроль вводимой информации. Более подробная информация о целях работы и составе разрабатываемого программного обеспечения изложена в выданном преподавателем варианте задания. конкретно не понятно как из этого задания осуществить следующие пункты: Цитата:
Цитата:
|
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
производные классы | missg | C++ Builder | 15 | 10.04.2012 18:16 |
Указатель на массив указателей на массив char'ов... | SrgGld | Общие вопросы C/C++ | 0 | 19.11.2010 23:35 |
класс employee и производные классы | olik83 | Общие вопросы C/C++ | 7 | 21.09.2009 22:44 |
С++ Производные классы (Ошибка) | Sweta | Помощь студентам | 9 | 23.04.2008 12:58 |
базовые и производные классы (В чём моя ошибка) | umnix | Общие вопросы C/C++ | 5 | 01.12.2007 17:26 |