Учебный пример ООП13.09.2016, 11:26. Показов 9314. Ответов 123
Метки нет (Все метки)
Добрый день
Знакомство ООП часто начинается с этого примера. Ну не "строчка в строчку" (это я взял первый попавшийся в гугле), но те же классы и методы.
С уважением Игорь
0
|
||||||
| 13.09.2016, 11:26 | |
|
Ответы с готовыми решениями:
123
Не работает учебный пример с БД: "произошла ошибка, связанная с сетью или с определенным экземпляром" |
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 16.09.2016, 21:31 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 16.09.2016, 21:38 | ||
|
0
|
||
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|||
| 16.09.2016, 22:21 | |||
А если ограничиться только известными типами? А если их немного и динамическое расширение не требуется? Мне представляется, что ты в крайность впадаешь. Выбирайся из неё. Там за пределами динамического связывания есть жизнь Ну, мне так видится.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 16.09.2016, 23:17 | ||||||
|
При этом сам принцип переключения на момент компиляции неизвестен (набор взаимосвязей переключателей и список установленных пушек в датапаке). Как на меня уж лучше иметь кое где виртуальные методы, но при этом иметь 100kb экзешки и 50кб хорошо читаемого кода, и пользоваться такими штукенциями как датабиндинг и т.п., чем тонны мозговныносящей свиньи, десятки метров экзешника и кучу ограничений. В результате и быстрее и надежнее будет. А от индирект вызовов все равно никуда не денешься ни c DX ни с OpenGL, их функционал на 100% из dll тянется а соответственно живет на индирект вызовах. Так же как и весь WinAPI. Не от хорошей жизни с праметрическим полиморфизмом в HLSL ООП и динамическое связывание ввели. Добавлено через 15 минут
0
|
||||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 17.09.2016, 00:01 | ||
|
У хаскеля, действительно, проблемы с памятью. Они выражаются в том, что программу надо писать, понимая, как это будет выполняться на уровне железа. Но эти проблемы связаны с ленивостью языка. И хаскель - единственный ленивый функциональный язык, который я знаю. У других ФЯ таких проблем нет. Нет таких проблем и у С#.
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 17.09.2016, 01:09 | |||
|
Добавлено через 25 минут
0
|
|||
| 17.09.2016, 09:40 [ТС] | |||
|
Если Model-View (Qt) то объект должен быть табличкой (строки/столбцы), где ячейки могут хранить фиксированный набор типов (хотя он велик и расширяем статически). Без этого "view" нечего рисовать Если же никакой общности нет (Квадраты и Заказы), то остается откатиться в процедурное программирование, возможнно с темплейтами для "отрисовки всех" В любом случае смешивать данные и отрисовку - грубая ошибка архитектуры
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 17.09.2016, 12:20 | |||||
|
Добавлено через 9 минут Добавлено через 5 минут При этом никакой разнецы нет будут закешированы данные инстанса до вызова при VMT-лукапе или изнутри вызываемой функции при доступе. При этом код вызываемой функции окажется в кеше гораздо вероятнее для динамического полиморфизма нежели для статического, как и то что сама VMT будет в кеше, особенно если типов не очень много.
0
|
|||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 17.09.2016, 20:55 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 17.09.2016, 21:20 | |||
|
Добавлено через 4 минуты А вот если это касается просто передачи параметров в функции, то если программист не знает какие из заказанных им же данных ему нужны это уже очень большие проблемы.
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||||
| 17.09.2016, 23:05 | |||||
|
В строгих языках так же нередко используется ленивость, но её приходится задавать явно, и это усложняет код. Элементарный пример: функция для поиска значения по ключу может принимать вторым аргументом значение, которое необходимо вернуть, если ключ не найден. Например, при чтении настроек (файлов конфигурации) такой подход используется почти всегда. Понадобится ли второй аргумент? А парсер методом рекурсивного списка писали когда-нибудь? Есть варианты использования и посложнее. Но чтобы их понять, нужно знать про алгебраические типы данных и сопоставление по образцу.
0
|
|||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 17.09.2016, 23:48 | ||||
|
0
|
||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||
| 18.09.2016, 00:34 | ||||
|
string.Format("{0:0.0}", Resourses.MyFile.MyKey) Про "параметрический полиморфизм" Вы ошибаетесь.
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 18.09.2016, 01:43 | |||
|
Добавлено через 42 минуты
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||||||||||||||
| 18.09.2016, 13:09 | ||||||||||||||||
|
Если Вы ни разу не писали/не использовали функцию, в которой в зависимости от значений одних параметров другие могут не использоваться, то, значит, Вы писали очень однообразные программы. Пример параметрического полиморфизма:
Вот пример использования АТД:
Получение целочисленного значения из базы данных. Функция возвращает либо целое число, либо NULL. Аналогично, поиск целочисленного значения по ключу в словаре (вместо традиционной корявой конструкции с out параметрами). И, кстати, код "Вариант 1" - это неуклюжая попытка имитировать АТД. (Неуклюжая, потому что enum может принимать не только значения из списка)
0
|
||||||||||||||||
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
|||||||
| 18.09.2016, 13:32 | |||||||
|
Кликните здесь для просмотра всего текста
Тут виртуальность дала просадку по скорости в два раза. Компилятор не смог устранить виртуализацию, хотя, теоретически, мог бы это сделать. Так, например, переделка кода с Java на C++ без изменения алгоритмов проводит к увеличению скорости до 20 раз, за счёт убирания ненужных косвенных вызовов и последующих оптимизаций компилятора. Вот такие нынче времена
0
|
|||||||
| 18.09.2016, 16:06 [ТС] | ||||||||
|
Кликните здесь для просмотра всего текста
0
|
||||||||
|
510 / 272 / 60
Регистрация: 14.12.2010
Сообщений: 548
|
||||||||
| 18.09.2016, 19:38 | ||||||||
![]() Указатель - барьер для оптимизаций. Увеличив косвенность вдвое, скорость падает ещё в два раза, итого более четырёх раз. Кликните здесь для просмотра всего текста
Как увеличение порядка косвенности работает смотри выше. ЗЫ: Не призываю выкидывать виртуальность, а лишь указываю, что есть ряд случаев, когда она тормозит программу и её можно устранить с выгодой.
0
|
||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||||
| 18.09.2016, 21:01 | ||||||
|
Добавлено через 9 минут Добавлено через 20 минут А насчет независимости то вы ошибаетесь,неопределенность фактического типа АДТ при возможности многократного присваивания ведет к комбинаторному взрыву при генерации кода. Добавлено через 16 минут Добавлено через 3 минуты
0
|
||||||
| 18.09.2016, 21:01 | |
|
ООП пример Пример ООП на D
Нужен пример использования ООП Нужен пример с использованием ООП Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|