Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/155: Рейтинг темы: голосов - 155, средняя оценка - 4.55
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
17.08.2016, 19:38
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Не очень хороший пример. Ибо самурай с мечем это может быть самурай + меч, тут не однозначно требуется наследование.
Ну так вообще любое наследование можно заменить агрегацией типа "самурай+меч", так как один фиг, на низком уровне она, родимая и будет. Другое дело, что через наследование работать удобней.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.08.2016, 19:38
Ответы с готовыми решениями:

Что даёт использование классов (и шире - ООП) в языке программирования С++? (2)
Продолжение темы

Концепция ООП и их использование в современных языках программирования
Дали курсовую на эту тему. Подскажите, какую литературу, которую можно бы было использовать пр написании. Спасибо. :з

Что дает использование сетки Бутстрапа
Ведь даже если элементам задать margin в процентах плюс ширину в процентах,то элементы перемещаются соотвественно с уменьшением экрана. ...

992
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
17.08.2016, 19:39
Цитата Сообщение от Renji Посмотреть сообщение
Внимательно слушаю, как мне решить эту задачу без б-гомерзких наследования и связанности.
Любую задачу можно решить не применяя ооп
Цитата Сообщение от Avazart Посмотреть сообщение
Наследование применяют для достижения разных целей
А что влечёт за собой наследование к тому же? Правильно, - использованием костылей под названиями деструктор и конструктор - неизбежная его цена. А потом удивляемся, почему С++ проигрывает по скорости высокоуровневому интерпретируемому языку. Адекватна ли цена? И: является ли С++ высокоуровневым языком? Если его "высокоуровневость" определяется его библиотеками, а не встроенными средствами.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
17.08.2016, 19:41
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Любую задачу можно решить не применяя ооп
Равно как и сексом можно заниматься в гамаке и стоя. Только, зачем?
А ответа как мне решить задачу я так и не увидел. То есть, более удобного варианта чем через ООП у вас таки нет.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.08.2016, 19:49
Цитата Сообщение от CoderHuligan Посмотреть сообщение
А что влечёт за собой наследование к тому же?
Я сказал разных целей, не всех подряд.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
использованием костылей под названиями деструктор и конструктор - неизбежная его цена.
Конструктор и деструктор не более методы, при чем не обязательно они должны быть виртуальными.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
А потом удивляемся, почему С++ проигрывает по скорости высокоуровневому интерпретируемому языку
Конкрентный пример?
Гавнокод на языке X может работать хуже нормального кода на языке Y.
Это не означает что X хуже Y. Это говорит просто о том что кто-то просто не осилил и сделал неправильные выводы.
0
 Аватар для NRX
22 / 19 / 9
Регистрация: 22.09.2015
Сообщений: 161
17.08.2016, 19:52
Цитата Сообщение от shilko2013 Посмотреть сообщение
У нас в ВУЗах только паскаль весь первый курс мурыжат и тд.
Быстрее самому.
Ну не знаю, в моем вузе мне на первом курсе дали java и c++
0
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
17.08.2016, 20:01
Цитата Сообщение от avgoor Посмотреть сообщение
С чего бы вдруг наличие связей всегда плохо?
Ну, вот, в процедурном подходе, на первый взгляд, видна некая связность, так как там одна процедура вроде как вызывает другую и т.д.. Но это только на первый взгляд. На самом деле тут никакой связности нет в принципе, так как каждая функция самостоятельна и может вызываться "всеми заинтересоованными лицами". Она не привязана ни к чему конкретному, а поэтому - является единицей абстракции.
В ООП методы привязаны к конкретным обьектам класса и не самостоятельны по смыслу, а значит не явяляются единицами абстракции. Возразят: дык этими единицами являются классы. Дык в том и дело, что статичная структура данных не может являться таковой по определению, так как описывает лишь свойства обьектов, а поэтому не может претендовать на обозначение самого обьекта.
Функция это то, что она делает? Это глагол? Нет. Не так. Это название "функция" вносит непонимание, поэтому думают, что она "функционирует". Дело в том, что она уже инкапсулирует в себе данные с момента своего вызова, так как знает о них, а так как она является к тому же ещё и "командой" ("сначала бе слово"), которая приказывает и повелевает(абстрактно), но не является деятелем по преимуществу, то, то, что в ней происходит, - её самой не касается, - она "команда", приказ, и только. Чистая абстракция мысли.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.08.2016, 20:34
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Она не привязана ни к чему конкретному, а поэтому - является единицей абстракции.
Каша в голове- каша в коде.
Когда вы хотите донести человеку мысль, вы не говорите (несвязными) независимыми словами, вы говорите предложениями. Вы упорядочиваете слова, расставляете интонации, делаете паузы.
Иначе вас не понимают. Тут тоже самое.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
самостоятельны по смыслу
Как функции могут быть самостоятельными если они работают только с определенными данными?
Которые как правило как раз и упаковываются в класс, что бы подчеркнуть этот факт?

Опять же никто не запрещает делать независимые ф-ции работающие с объектами класса когда это требуется.

Добавлено через 12 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Функция это то, что она делает?
Важно не только "что делает?" и "с какими данными?" , но и "как?".
Из чего и принимается решения как организовывать код.
Делать независимую ф-цию, делать метод класса, делать набор перегруженных функций, делать шаблонную ф-цию или применять наследование.

Добавлено через 7 минут
Например у нас есть квадрат, треугольник и круг. Всё это фигуры. Для всех можно вычислить площадь, но площадь для каждой фигуры вычисляется по разному(разной формуле ну и исх данные разные), а значит и для каждой фигуры должны быть разные функции. Но тем не менее это не мешает эти "ф-ции свести в одну" используя средства ООП или шаблоны.
0
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
17.08.2016, 20:41
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Ну, вот, в процедурном подходе, бла-бла-бла
Есть что сказать - пиши код.
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.08.2016, 21:09
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Связность - очень плохо. Очень.
это нужно понимать, тоже должен объяснять Страуструп?

сейчас такое впечатление что вы думаете, что это плохо, потому что плохо.
то бишь без каких либо объективных причин.

другими словами - сами не знаете ответ на вопрос "почему".
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
17.08.2016, 21:18
Цитата Сообщение от gru74ik Посмотреть сообщение
Джаву?
Нет, я же сказал - настоящий ООП язык! (R) Smalltalk. Хотя я так к нему и не приступил вплотную пока, только среду скачал, пока другими игрушками увлекся Но надеюсь когда-нибудь заняться им плотнее.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
17.08.2016, 21:56
Цитата Сообщение от _Ivana Посмотреть сообщение
Нет, я же сказал - настоящий ООП язык! (R) Smalltalk.
апологеты грят - ооп там паршивей некуда.
0
17.08.2016, 22:11

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Хотя я так к нему и не приступил вплотную пока, только среду скачал,
Ну на один не осиленный язык прибавилось, к вашим достижениям.

0
807 / 534 / 158
Регистрация: 27.01.2015
Сообщений: 3,017
Записей в блоге: 1
17.08.2016, 22:13
_Ivana, а хаскел, я так понимаю, вы уже нагнули?
0
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
18.08.2016, 00:02
Нет, я же коллекционирую неосиленные языки Да и вообще, я отвечал конкретному участнику форума, а внезапно это вызвало такой живой интерес у не относящихся к этому людей. Но раз уж так получилось - то расскажите мне еще, какой Smalltalk плохой, какой я плохой или что-нибудь еще, что кажется вам непременно важным сказать

Добавлено через 1 час 37 минут
Цитата Сообщение от Renji Посмотреть сообщение
Внимательно слушаю, как мне решить эту задачу без б-гомерзких наследования и связанности.
Ну вот примитивно, неоптимально, но принцип демонстрирует - в консоли печатаются буковки/циферки, по '-' undo, по '+' redo:
Haskell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import Control.Concurrent
import System.Console.ANSI
import System.IO
import Data.Char
import Foreign.C.Types
 
getHiddenChar = fmap (chr.fromEnum) c_getch
foreign import ccall "conio.h getch"
    c_getch :: IO CInt
 
data TextState = TextState [String] String [String]
 
undo ts @ (TextState [] _ _) = ts
undo (TextState (p:ps) s ns) = TextState ps p (s:ns)
 
redo ts @ (TextState _ _ []) = ts
redo (TextState ps s (n:ns)) = TextState (s:ps) n ns
 
addc c (TextState ps s _) = TextState (s:ps) (s++[c]) []
 
gets (TextState _ s _) = s
 
waitKeyPress :: MVar TextState -> IO ()
waitKeyPress m = do
    a <- getHiddenChar
    t <- takeMVar m
 
    let newt = case a of
          '+' -> redo t
          '-' -> undo t
          _   -> addc a t
 
    clearScreen
    setCursorPosition 0 0
    putStr $ gets newt
    putMVar m $! newt
    waitKeyPress m
 
main :: IO ()
main = do
    hSetBuffering stdin NoBuffering
    hSetBuffering stdout NoBuffering
 
    setTitle "Text editor"
    m <- newEmptyMVar
    putMVar m $! TextState [] "" []
    waitKeyPress m
1
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.08.2016, 00:09
Цитата Сообщение от CoderHuligan Посмотреть сообщение
использованием костылей под названиями деструктор и конструктор - неизбежная его цена.
RAII - киллер-фича оопнутых языков.
без них язык (сишка например) - неудобное УГ.
0
Эксперт .NET
 Аватар для Usaga
14726 / 9496 / 1362
Регистрация: 21.01.2016
Сообщений: 35,808
18.08.2016, 07:37
Цитата Сообщение от CoderHuligan Посмотреть сообщение
"Почему" - пусть страуструп обьяснит.
Т.е. заявления делаешь ты, а объяснения должен Страуструп давать? Это новая форма конструктивного разговора?

Если ты не понимаешь, что даёт ООП, чем оно полезно, то это нормально. Ты просто ещё не разобрался. Но оправдывать это непонимание агрессивным заявлением "ООП - г***о" - вот это уже детский садик. Если у тебя есть мнение на счёт чего-то, то это мнение должно быть чем-то подкреплено. В противном случае имеет место балабольство.
1
 Аватар для Voivoid
710 / 283 / 16
Регистрация: 31.03.2013
Сообщений: 1,340
18.08.2016, 09:45
Цитата Сообщение от _Ivana Посмотреть сообщение
какой Smalltalk плохой
Динамически типизированный => не нужен
0
18.08.2016, 15:49
 Комментарий модератора 
Ребята, возвращаемся к обсуждению темы, пожалуйста.
0
18.08.2016, 16:15
 Комментарий модератора 
Прекращаем оффтоп и беспорядок.
Если кто проигнорирует данное требование,
к тому будут применены соответствующие меры.
Спасибо за внимание, господа.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
19.08.2016, 00:16
CoderHuligan, Один умный чел сказал, разделяй и властвуй. ООП группирует процедуры и данные вместе. Попробуй написать код в 10000 строк на чистом си, потом попробуй на с++, поймешь разницу, естественно если ты не сталкивался с кодом больше чем на две процедуры и 20 строк, тебе не понять преимущества ООП. Попробуйте объяснить пятилетнему ребенку, что он еще мал и глуп, я своему не смог.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2016, 00:16

Посоветуйте книгу по C# в которой как можно шире раскрыты прелести ООП
посоветуйте, пожалуйста, книгу по C#, в которой как можно шире раскрыты прелести объектно-ориентированного программирования (области...

Что значат эти скобки >>> в языке программирования
зарание извиняюсь если вопросы глупые , я начал только сегодня изучать программирование на языке питон , сразу хочу сказать что мой уровень...

Использование функции DCount в элементе управления отчета Access2003 не дает желаемого результата. Что делать?
Здравствуйте. Имеем отчет Access2003, основанный на запросе &quot;запСота&quot;. В отчете в разделе Заголовок имеем вычисляемое поле со следующей...

На русском языке или языке программирования
Опишите на русском языке или на одном из языков программирования алгоритм получения из целочисленного массива А состоящего из 30 элементов...

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
100
Закрытая тема Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru