0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
||||||
1 | ||||||
Записная книжка и ООП02.03.2022, 15:43. Показов 3395. Ответов 40
Метки нет Все метки)
(
помогите пожалуйста!только начинаю ООП хотелось бы понять как правильно оформлять код на примере записной книжки , хотел создать меню и ступор!
0
|
02.03.2022, 15:43 | |
Ответы с готовыми решениями:
40
Записная книжка Записная книжка Записная книжка |
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
|
|
02.03.2022, 16:27 | 2 |
Всё не то и всё не так. Вы пытаетесь использовать классы как обычные функции, но это вообще не правильно. А чтобы узнать как правильно, нужно снова прочитать начальные главы про классы.
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
02.03.2022, 16:35 [ТС] | 3 |
John Prick, вы наверно имеете ввиду конструкторы?
0
|
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
|
||||||
02.03.2022, 16:45 | 4 | |||||
Нет. Я имею в виду то, что и сказал.
В детали особо вдаваться нет смысла. Но если очень хочется.. Работает, но абсолютно бессмысленно. Весь результат "исчезнет" после выхода из switch. Понимаю, вы хотели передать аргументом fullname. но для этого его надо было бы объявить заранее:
И опять же, если бы класс READ содержал какие-то внутренние данные, они были бы "потеряны" тут же после выполнения этого кода.
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
02.03.2022, 16:53 [ТС] | 5 |
John Prick, спасибо
Добавлено через 4 минуты John Prick, можно еще вопрос? конструкторы лучше использовать для каких целей? Добавлено через 1 минуту John Prick, как и классы
0
|
2355 / 1842 / 756
Регистрация: 27.07.2012
Сообщений: 5,460
|
|
02.03.2022, 17:11 | 6 |
У конструктора есть только одна цель - создать объект. Объект уже используется для тех целей, для которых был предназначен класс этого объекта.
Добавлено через 12 минут Класс в общем случае это совокупность неких данных и функций работы с ними. На примере меню могут быть классы отдельных пунктов меню и всего меню, которое содержит массив пунктов меню и функцию, которая свяжет выбор пользователя с конкретным пунктом.
1
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
02.03.2022, 17:19 [ТС] | 7 |
John Prick, благодарю я понимаю очем вы спасибо!
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
||||||
08.03.2022, 14:40 [ТС] | 8 | |||||
0
|
![]() 3790 / 2716 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
|
|
08.03.2022, 14:51 | 9 |
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
08.03.2022, 15:02 [ТС] | 10 |
SmallEvil, какие ошибки вы видите ?
Добавлено через 2 минуты SmallEvil, уж лучше ничего не писать чем такое как вы Добавлено через 1 минуту SmallEvil, в любом случае спасибо
0
|
![]() 3790 / 2716 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
|
|
08.03.2022, 18:18 | 11 |
В том то и проблема. Что не вижу вообще ничего. Кроме дров нарубленных сплеча.
aleksei22, Почему не приведен код с неполной реализацией классов ? Как вам подсказать и объяснить что такое инкапсуляция, что такое состояния объекта и так далее ? На примерах. Желательно на ваших. Но их то нету... А гладить вашу простыню никто не станет. Самого текста задания тоже нету, что бы хотя бы каркас вам написать. Ну вот никто ничего и не пишет. Добавлено через 5 минут aleksei22, если есть какая то книга или документация (может с вашего учебного заведения), читайте про классы, с самого начала. Если нету ничего, проходим курс по ликбезу : Урок №113. Классы, Объекты и Методы Рекомендую всю главу прочитать "Глава №8. Основы ООП в C++".
1
|
![]() 4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
|
||||||
08.03.2022, 19:11 | 12 | |||||
![]() Решение
Как правильно ОФОРМЛЯТЬ код вам скажет преподаватель. Есть, конечно, некие традиции и правила хорошего тона, типа именовать переменные со смыслом, не "x", "a" или "c", а "notepad", "menu" или "name".
Но это всё лирика. Это потому, что вы ещё не научились видеть абстракции и ваше мышление немного не в ту сторону кренит. Довольно быстро проходит, если программирование затягивает. Если всерьез собираетесь заняться этим вопросом, отошлю вас к книжкам. Вкратце, вам нужно сделать объекты вашей модели как можно более самостоятельными и независимыми. Посмотрите пример ниже. Не абсолютно кошерно, но общее представление должно дать. Обратите внимание, класс меню ничего не знает о классе ноутпада, а ноутпад ничего не знает про меню. Соединяет их вызов из меню через функцию.
2
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
||||||
20.03.2022, 09:13 [ТС] | 13 | |||||
Здраствуйте парни ,переделал,жду критики. И у меня два вопроса к вам. 1й enter number menu 1, 2, 3. 1 : enter and write 2 : read all info 3 : find one 2 Фаил успешно открыт! Will you whant enter one more time? : 1 , No : 2 2 C:\Users\aleksei\source\repos\PoneBook\Debug\PoneBook.exe (процесс 9656) завершил работу с кодом -1073741819. Нажмите любую клавишу, чтобы закрыть это окно… почему ошибка? только при считывании 2й хочу сделать рандомный поиск но не пойму в txt кракозябры ума не приложу как конвертировать это? Добавлено через 1 минуту *Phone я знаю))) Добавлено через 1 минуту У меня нет преподавателя
0
|
фрилансер
![]() 6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
|
|
20.03.2022, 09:45 | 14 |
тогда, для начала, забудь про это (особенно в заголовках!)
- убирай из кода, указывай везде явно std:: это для чего вдруг возникло? кроме того, exit - такая функция уже есть в C++, но пользоваться ей не следует-нельзя так читать сложные объекты.
1
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
20.03.2022, 09:51 [ТС] | 15 |
Алексей1153, да я уж пожалел что не начал по простому через char[], про exit() cлышал тоже ,заменю.Спасибо!
0
|
фрилансер
![]() 6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
|
|
20.03.2022, 10:52 | 16 |
aleksei22, да лучше как раз со std::string, только сериализацию правильно нужно сделать
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
20.03.2022, 11:00 [ТС] | 17 |
Алексей1153, ну да,отпадет лишняя писанина
0
|
![]() 4890 / 2685 / 918
Регистрация: 29.11.2010
Сообщений: 5,772
|
|
20.03.2022, 16:33 | 18 |
It's story time.
Чтоб программисты писали один код примерно одинаково, и не кровоточили глаза, толпы программистов придумывают штуки, называющиеся Code Style Guide -- документы, описывающие, как эта группа программистов считает правильным оформлять код. Сколько существует компаний столько существует и Code Style Guide-ов. Вот, на мой взгляд, десяток особо отличившихся на этом поприще: ISO Sutter & Stroustrup ROS LINUX Microsoft CERN GCC ARM LLVM Кроме оформления, такие гайды еще имеют рекомендации по правильному написанию отдельных частей кода. Пока у вас нет работодателя или преподавателя, диктующего вам стиль, попробуйте писать в каком-то одном из вышеприведённого списка. На мой взгляд, самый читаемый стиль из вышеприведённых у ROS и LLVM, самыми нечитаемыми являются стили с венгерской нотацией, которая на мой взгляд бесполезна. Но на вкус и цвет фломастеры разные. Посмотрите, попробуйте разное.
0
|
0 / 0 / 0
Регистрация: 02.03.2022
Сообщений: 20
|
|
21.03.2022, 08:00 [ТС] | 19 |
Парни подскажите пожалуйста. Как сделать private члены-класса одного класса доступными для другого и чтобы при выходе из области видимости метода одного класса не стирались сохранялись в другом. Это по ссылке& надо? в параметрах и аргументах метода?если можно маленький и простой примерчик.Всем спасибо!
0
|
фрилансер
![]() 6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
|
|
21.03.2022, 08:04 | 20 |
сделать их public или использовать функцию, возвращающую их
это - непонятный набор слов
0
|
21.03.2022, 08:04 | ||||||
Помогаю со студенческими работами здесь
20
Записная книжка
Описать класс записная книжка Записная книжка (исправить код)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
![]() |
Новые блоги и статьи
![]() |
||||
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
|
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
|
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
|
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
|
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
|
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
|
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH
1. поймать путь через вывод $(pwd)
2. более правильно - на основе realpath (см. скриншот)
|
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
|
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
|
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
|