|
404 / 360 / 36
Регистрация: 11.10.2010
Сообщений: 1,907
|
|
Знаю ли я основы ООП?09.07.2012, 23:11. Показов 7629. Ответов 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 | |
|
Основы ООП, ввод данных Ооп. Изучаю основы, обьясните на примере Где могу прочитать про основы ООП? Основы ООП. Создание стека через класс Основы ООП [С++] Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
|
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было
ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась.
Первый вариант. . .
|
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2.
Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|