1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|||||||||||
1 | |||||||||||
Создать классы Дом, Квартира и Человек14.12.2018, 12:10. Показов 13618. Ответов 18
Метки нет (Все метки)
Создайте программу, имитирующую многоквартирный
дом. Необходимо иметь классы «Человек», «Квартира», «Дом». Класс «Квартира» содержит динамический массив объектов класса «Человек». Класс «Дом» содержит массив объектов класса «Квартира». В общем столкнулся с проблемой соединения всех классов в общие данные.Не могу найти взаимосвязь между классами для вывода данных в main(). Как в классе "Человек" использовать данные других классов,допустим номер квартиры ,который хранится в классе квартира,адрес дома из класса "Дом"???И в других классах соответственно класс "человек". И чтобы не было каши если создавать несколько объектов класса "Дом"? Часть кода occupant.h
Occupant.cpp
0
|
14.12.2018, 12:10 | |
Ответы с готовыми решениями:
18
Запрос с параметрами Улица, Дом, Квартира, Жители Вложенность типов адресса: улица, дом, квартира Выбор данных в связанных списках Улица, Дом, Квартира Опишите, используя структуру записи, данные о студентах (фамилия, улица, дом, квартира) |
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|||||||||||
21.12.2018, 11:28 [ТС] | 2 | ||||||||||
Пока никто не пишет,закину еще пару классов.
Flat.h
Flat.cpp
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 11:31 | 3 |
Ну об этом должны были Вы как программист и позаботится. Вариантов есть несколько, но для начала наверное хотелось бы увидеть сам класс "Человек" или
Occupant - это и есть он?
0
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 11:37 [ТС] | 4 |
А вот в классе Дом уже использовать схему кода класса Flat не получается.
Не инициализируются методы и объекты класса Flat. То есть хочу использовать принцип матрешки, а не получается.. Объект класса жильца в класс квартира(в квартире то могут жить и несколько человек). А объект класса квартира влаживаем в массив класса дом .По сути только их перечисляя.Ну и вывод либо через метод либо в main() через цикл do while и switch. Вот такая логика.
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 11:39 | 5 |
Например здесь у вас вообще потенциальное UB, кто дает гарантию что до этой строчки ваше поле
surname не содержит мусор? Тогда что вы попытаетесь удалить? А еще смущает поле int* number; - зачем и почему это указатель?
0
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|||||||||||
21.12.2018, 11:43 [ТС] | 6 | ||||||||||
класс Occupant это и есть класс человек.
Немного его изменил добавил конструктор с параметрами объекта класса Occupant.h
Occupant.cpp
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 11:45 | 7 |
Kobzarko, вот теперь точно будет UB, предыдущая версия с 1 конструктором была чуть вернее.
0
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 11:46 [ТС] | 8 |
Ну я только учусь ,так что и отталкиваюсь от отладчика не ругается значит хорошо.
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 11:47 | 9 |
1
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 11:47 [ТС] | 10 |
Самое интересное что второй вариант нам препод давал))))
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 11:50 | 11 |
Ну у вас вообще не логично построены классы и взаемодействие с ними, знатоки сказали бы не по ООПешному, хотя может и вопрос использования ООП не стоял.
0
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 11:59 [ТС] | 12 |
Azazel-San, вот как раз ООП и изучаем.((
Добавлено через 5 минут Azazel-San, хотя как по мне все логично.Меньший класс попадает в другой класс и соответственно в третий. Но в тоже время я могу использовать их отдельно друг от друга (а может и не могу) Добавлено через 53 секунды Объе́ктно-ориенти́рованное программи́рование (ООП) — методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определённого класса, а классы образуют иерархию наследования[1].
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 12:05 | 13 |
Kobzarko, ну для начала ваш последний премер вашего класса "Человек" не будет работать, по выше сказанным причинам. Второе это указатели которые делают что? А не понятно, они могут указывать на что-то и никто это не контролирует. Конструктор копирования, который делает что-то странное. Доступ к приватным полям класса и тд.
1
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 14:17 [ТС] | 14 |
Azazel-San, посоветуйте пожалуйста литературу либо какой нибудь видеоблог про ооп.А то вы меня немного озадачили.Нужно разобраться либо лыжи ,либо я.
0
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
21.12.2018, 15:36 [ТС] | 16 |
Azazel-San, а что именно не так с указателями?Я использую указатели так как это строка и указатель на динамический массив длину которого я не знаю.
Или все таки стоит отказаться от их использования?
0
|
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
|
|
21.12.2018, 15:43 | 17 |
Kobzarko, с самими указателями все так, а вот с тем как вы их используете, не все так хорошо. Особенно когда вы работаете с кучей. У вас как минимум неверная инициализация и местами потенциальные утечки памяти, ну и как я говорил возможность изменить приватное поле класса.
0
|
693 / 303 / 99
Регистрация: 04.07.2014
Сообщений: 846
|
|||||||||||
22.12.2018, 11:23 | 18 | ||||||||||
Сообщение было отмечено Kobzarko как решение
Решение
Подправил твоего оккупанта:
Но в С++ для строк есть std::string :
Первый вариант исключительно в образовательных целях, пока не усвоите правило трёх/пяти/нуля в С++
3
|
1 / 1 / 0
Регистрация: 03.07.2018
Сообщений: 19
|
|
22.12.2018, 19:40 [ТС] | 19 |
AlexVRud, спасибо большое за столь конкретный материал.О правилах вообще первый раз слышу.
0
|
22.12.2018, 19:40 | |
22.12.2018, 19:40 | |
Помогаю со студенческими работами здесь
19
Описать, используя структуру данных запись, данные на учеников (фамилия, улица, дом, квартира) Текстовые файлы: Дан файл f, содержащий сведения об учениках (фамилия, улица, дом, квартира) Описать, используя структуру, почтовую сортировку (город, улица, дом, квартира, кому, ценность) Преобразовать строку, записав адрес прававильно: <область>, <нас. пункт>, <улица>, <дом / квартира>, <индекс> Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |