|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.10.2010, 15:22 | #1 |
Пользователь
Регистрация: 28.01.2010
Сообщений: 17
|
Композиция класов
Делал я тут задание по книге Дейтла. Сделать модель лифта в 2 этажном офисе. Но вот наткнулся на проблему с композициями классов:
Приведу код на русском: Код:
По идее пассажир должен уметь воздействовать на поведение лифта. Для этого в классе пассажир и объявлен лифт. При создании нового пассажира в его конструктор поступает адрес лифта - адрес одного единственного неизменного лифта, на поведение которого пассажир может влиять. Но. В моем коде ошибка. Пассажир просто напросто создает свой - новый лифт. Почему - я же сказал ему вот тебе адрес пользуйся им - и не создавай новый лифт. Как сделать так чтобы пассажир принимал ссылку, или адрес уже существующего объекта класса лифт? Последний раз редактировалось fantom_ZET; 31.10.2010 в 15:35. |
31.10.2010, 15:34 | #2 |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Код:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
31.10.2010, 15:42 | #3 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
А лучше просто
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
31.10.2010, 16:14 | #4 |
Пользователь
Регистрация: 28.01.2010
Сообщений: 17
|
Syuf - все равно создается новый лифт - уже статический но новый. Получается пассажир создает лифт. А должно быть Пассажир знает где лифт, знает все свойства лифта.
Здесь у лифта есть статус который по умолчанию равен 0, создается новый пассажир, и пробует изменить статус лифта на другой. В итоге оказывается что он снова создал еще один объект класса Лифт и присвоил ему статус. А настоящий лифт так и остался с нулевым статусом. Код:
Что не так?? С этими указателями и ссылками одна морока.... Опять ошибку пишет: unresolved external symbol "public: __thiscall CPasenger::CPasenger(class CElevator *)" (??0CPasenger@@QAE@PAVCElevator@@@Z ) Или подскажите как правильно инициализировать объект одного класса в качестве элимента другого класса, передачей по ссылке или через указатель. Последний раз редактировалось fantom_ZET; 31.10.2010 в 16:39. |
31.10.2010, 16:38 | #5 | |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Цитата:
Конструктор-то могли бы и написать. Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
|
31.10.2010, 16:40 | #6 | |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Цитата:
Опоздал...
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
|
31.10.2010, 16:50 | #7 |
Пользователь
Регистрация: 28.01.2010
Сообщений: 17
|
Гром, Syuf спасибо. Все работает.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формирование изображения (редактирование, композиция) | TIgor4 | Мультимедиа в Delphi | 2 | 28.02.2010 21:03 |
Классы С++ (Композиция) | werser | Помощь студентам | 12 | 01.12.2009 18:55 |
Диаграма класов (Power Designer'ам) | Gollandec | Помощь студентам | 0 | 29.11.2009 13:57 |