|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.05.2013, 15:56 | #1 |
Новичок
Джуниор
Регистрация: 31.05.2013
Сообщений: 9
|
Вектор указателей на абстрактный базовый класс
[C++] Задание на курсовую работу.
A. Разработайте иерархию родственных типов, корневой класс которой - абстрактный базовый класс, для моделирования и обработки данных предметной области. B. Создайте обобщенный контейнерный класс (базовый) и от него, используя закрытое наследование, производный класс – шаблон для хранения указателей на абстрактный базовый класс согласно варианта (вариант - статический вектор). C. Для хранения объектов каждого производного класса используйте структуру данных согласно варианта (вариант - статический вектор). Смогла реализовать всё, кроме задания B. Базовый класс и от него шаблон написала, но не могу добавить указатели в вектор. Вот код (естественно, не весь): Код:
Последний раз редактировалось Stilet; 31.05.2013 в 18:15. |
31.05.2013, 16:37 | #2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Ну так Вы пытаетесь занести в вектор не поштучно указатели на элементы другого вектора (как можно бы...), а сам другой вектор. Компилятор и говорит: "извини, начальник, это ящик для фруктов, апельсин сюда положить могу, а 'мешок апельсинов' нет".
|
31.05.2013, 16:58 | #3 |
Новичок
Джуниор
Регистрация: 31.05.2013
Сообщений: 9
|
Поштучно тоже пробовала. Тогда в момент выполнения программы вылетает ошибка адреса модуля.
|
31.05.2013, 17:02 | #4 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Ну, отлаживайте. Из видимого меня настораживает только то, что SVector :: operator [] возвращает неопределённое значение. Компилятор должен был ругнуться.
|
31.05.2013, 17:10 | #5 |
Новичок
Джуниор
Регистрация: 31.05.2013
Сообщений: 9
|
Если б знала, что и как отлаживать.
С перегрузкой [] в классе SVector, вполне возможно, не всё так, как должно быть. Если у Вас есть какой-либо вариант реализации, буду рада. |
31.05.2013, 17:19 | #6 | ||
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
Цитата:
Ну, или просто посмотрите глазами на эту строку: Код:
|
||
31.05.2013, 17:34 | #7 | |
Новичок
Джуниор
Регистрация: 31.05.2013
Сообщений: 9
|
Компилятор нигде не ругается, за исключением того, что уже писала.
Если б я была достаточно сильна в Си, то смущало бы. А так, я лишь вижу, что внутри этой функции Цитата:
Сколько бы Вы меня носом не тыкали, проще будет помочь непосредственно с реализацией части В задания. |
|
31.05.2013, 17:44 | #8 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
31.05.2013, 17:53 | #9 |
Новичок
Джуниор
Регистрация: 31.05.2013
Сообщений: 9
|
Приходила к преподу показать курсовик. Эту часть стали рассматривать чуть более подробно, т.к. она нужна для полиморфной обработки данных. Ну, и то, что тут написано, диктовал он. По его словам: берём ссылку на V и передаем в функцию базового класса, где используя void* компилятор должен, по идее, сам провести необходимое преобразование. Только что во что будет преобразовываться я уже не вкурила.
|
31.05.2013, 18:01 | #10 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Наследования. К указанной ниже программы добавить базовый абстрактный класс. | Кулибаба Петро | C++ Builder | 0 | 17.01.2013 22:26 |
Сортировка массива указателей на абстрактный базовый класс | Frants | Общие вопросы C/C++ | 11 | 29.11.2012 19:44 |
Создать абстрактный базовый класс C++ | MicRaiS | Общие вопросы C/C++ | 3 | 11.06.2012 13:14 |
Абстрактный базовый класс(задача) | friman134 | Общие вопросы C/C++ | 2 | 17.12.2011 21:51 |