|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
Знаю ли я основы ООП?09.07.2012, 23:11. Показов 6961. Ответов 62
Метки нет (Все метки)
ООП я изучал но не применял, ну если не считать собственный класс string и примитивную обертку WinAPI. Так что прошу дайте мне задачи по ООП, чтобы понять на каком уровне находятся мои знания, и на основе этих результатов понять могу ли я читать книгу четырех или еще рано.
0
|
|
| 09.07.2012, 23:11 | |
|
Ответы с готовыми решениями:
62
Основы ООП ООП Создание основы класса |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 10.07.2012, 23:30 | ||||||
|
novi4ok, Пожалуй я бы внес исправления в свой код, в частности.
Так же можно отделить парсинг от подсчета. А во втором как добиться возможности большего повторного использования так сразу на ум не приходит (только если передавать некий функтор который будет считывать нужное кол-во данных, делать какие-то опциональные действия и возвращать кол-во считанных данных). И все же хотелось бы увидеть твой вариант.
1
|
||||||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 11.07.2012, 00:49 | ||
Сообщение было отмечено как решение
Решение
4
|
||
| 11.07.2012, 01:01 | |
|
ForEveR, конечно, мы все данный пример рассматриваем как учебный, и нужно не решить, а показать, как мы могли бы решить. в реальной жизни всегда существует еще куча обстоятельств, которые нужно учитывать (что уже имеется, отпущенные время-деньги, какое предполагается развитие и пр.).
с точки зрения ооп (задача поставлена - применить ооп!) в этой задаче я бы выделил "кого-нибудь", кто умеет разбирать параметры и выдать результат (что нужно делать): инвалидные параметры посчитать слово "слово" вычислить контрсумму вывести подсказку подсчитывать слова, вычислять сумму и выводить подсказку вроде бы не связанные между собой вещи, и создавать класс, который это все умеет - криво. но и лепить по классу для выполнения каждого из этих заданиц тоже не очень ловко. но разбираться с ними будет проще, чем с пачкой функций. твое, ForEveR, решение, тоже - с применением ооп (а что такое stream, vector, boost, как не классы, созданные на базе темплейтов?), но требовалось, наверное, распределить выполнение задания между созданными "самодельными" классами. я бы такую задачу, если бы мне ее задали на собеседовании, вообще решать не стал. я бы спросил, что они хотят обо мне узнать, пусть спросят, я и так расскажу, без идиотских заморочек.
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 11.07.2012, 01:12 | |
|
novi4ok, boost это все же namespace. Я просто не стал делать новые классы для разбора и т.д., я показал как сделал бы это при возможности использовать любой готовый код.
0
|
|
|
|
||||||
| 11.07.2012, 09:34 | ||||||
Сообщение было отмечено как решение
Решение
Вобщем я когда-то давно обращался сюда на форум с этой же задачей (и со своим быдлокодом
), вот решение, которое предложил CyBOSSeR, на мой взгляд хорошее. Тут только дизайн, без реализации:
3
|
||||||
| 11.07.2012, 10:46 | |||
|
Добавлено через 5 минут чтобы не быть голословным, предлагаю кратко описать, как работает код (дезигн, если так больше нравится), созданный ForEveR, и то же самое проделать для этого "на твой взгляд хорошего" решения. просто расскажи, чтобы было понятно, как эти лебедь, щука и рак совместно трудятся. сколько слофф тебе понадобится, и будет ли после этого понятно. ооп - для упрощения, а не наоборот.
0
|
|||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|||||||
| 11.07.2012, 12:20 | |||||||
Сообщение было отмечено как решение
Решение
Kastaneda, на самом деле, сейчас я бы все таки убрал бы реестр комманд внутрь друго класса, аля CommandExecutor, чтобы main, ни про реестр, ни про команды не знала. Да и вообще бы, не стал бы выделять реестр как класс, сложил бы просто в виде std::map в CommandExecutor. И стоит подумать на тем, чтобы вообще от комманд избавится, ибо их немного совсем.
Добавлено через 19 минут Kastaneda, можно вообще избавится от интерфейса комманды, чтобы я и сделал бы, получилось бы что-то вроде:
3
|
|||||||
| 11.07.2012, 12:34 | ||
|
понять твое решение можно, но оно неоправданно наворочено. нужно пытаться находить простые решения для сложных задач, а твое - типичный пример того, как можно накрутить с решением примитивной задачи.
0
|
||
| 11.07.2012, 12:56 | ||
Сообщение было отмечено как решение
РешениеНе по теме: novi4ok,
4
|
||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 11.07.2012, 14:05 | ||
|
Но все же Вы правы, решение сложновато для поставленной задачи. Все таки от команд нужно избавится в пользу обобщеных функторов и убрать реестр, получится что-то вроде примера в #47.
0
|
||
| 11.07.2012, 14:26 | |
|
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|
| 11.07.2012, 18:08 | |
|
novi4ok, все таки, думаю, многим хотелось бы увидеть Ваше решение. Представьте его, пожалуйста.
1
|
|
| 11.07.2012, 21:31 | ||
|
Знаю ли я основы ООП? так что спрашивай если что ...
0
|
||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 11.07.2012, 21:53 | ||
|
0
|
||
| 12.07.2012, 00:47 | ||
|
1. кому нужен код? 2. мне не нужно, чтобы кто-нибудь здесь оценивал мой дизайн. отсюда: зачем я должен тратить мое время на то, что нужно кому-то, а мне этого делать не хочется? логично? а главное - просто! это и есть ооп!
0
|
||
|
70 / 64 / 5
Регистрация: 09.06.2012
Сообщений: 291
|
|
| 12.07.2012, 01:08 | |
|
Программисты,кто как считает что луче использовать паблик переменный или свойства для класса?
0
|
|
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
|||||||
| 12.07.2012, 01:33 | |||||||
Сообщение было отмечено как решение
РешениеДобавлено через 12 минут
7
|
|||||||
| 12.07.2012, 02:10 | ||||
|
0
|
||||
| 12.07.2012, 02:10 | |
|
Помогаю со студенческими работами здесь
60
Основы ООП, ввод данных Ооп. Изучаю основы, обьясните на примере Где могу прочитать про основы ООП? Основы ООП. Создание стека через класс Основы ООП [С++] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|