|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
Долго ли вы привыкали к объектам и классам?29.01.2015, 20:54. Показов 1625. Ответов 14
Метки нет (Все метки)
Недавно дошел до главы, где начинаются классы, объекты и т.п... До сих пор, всё делал в функции main и там всё писал по порядку, так и выполнялось. А сейчас взять тот же класс, в нем объект, который имеет некоторое кол-во элемент-функций. В общем, принцип я понял, но как-то привыкнуть не могу, если попытаюсь создать свой класс - не могу выполнить задачу, одни косяки... Еще эти аргументы функций.. Что-то и куда-то возвращает значение.. Ужс
![]() У всех были подобного типа сложности? И если да, то справились ли вы?) И как вообще можно всё упомнить, когда пишешь код? Одна элемент-функция делает одно, другая - другое, одна куда-то возвращает какое-то значение и т.п. Ну это ладно, у меня в классе всего один объект и несколько элем.-функций, а что если куча этих классов и объектов? Комментарии спасают?
0
|
|
| 29.01.2015, 20:54 | |
|
Ответы с готовыми решениями:
14
Задача по объектам и классам Посоветуйте литературу по объектам и классам
|
|
102 / 44 / 18
Регистрация: 08.01.2015
Сообщений: 97
|
|
| 29.01.2015, 20:59 | |
|
0
|
|
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||
| 29.01.2015, 21:00 [ТС] | ||
|
И да, спустя долгое время понял, что возвращают функции и куда. Если бы сразу знал, что int = integer,
char - character и т.п. то было бы проще, английский чуть-чуть помогает в понимании. Добавлено через 48 секунд
0
|
||
|
102 / 44 / 18
Регистрация: 08.01.2015
Сообщений: 97
|
|
| 29.01.2015, 21:08 | |
|
Как -то не парился особо. В чужих библиотеках пришлось разбираться. А потому пришлось осваивать классы,ООП и т.д и тп. Постепенно на С++ и С# переполз. Иначе сидел бы на Си.
1
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
|
||
| 29.01.2015, 21:17 | ||
|
Не делай слишком большие функции (если не помещается в один экран - это уже повод подумать). Называй параметры функций понятными именами, согласно их назначению. Тоже самое относится к именам классов. Пользуйся const в тех случаях, где он необходим. Комментарии, как правило, не спасают, т.к. имеют свойство устаревать. Это особенно заметно в больших проектах. Но комментирование сложных участков кода является, тем не менее, хорошей практикой. Но как и любым инструментом, комментариями не стоит злоупотреблять.
2
|
||
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||
| 30.01.2015, 00:31 [ТС] | ||
|
0
|
||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 30.01.2015, 00:42 | |
|
никак. на счет помещения на монитор - это примерная метрика. в строчках еще измеряют.
со временем придет понимание что длинно, а что номр. на счет одинаково выглядящих исходников: тут разве что настроить свой редактор, чтобы он вместо табов пробелы втыкал. не важно сколько, лишь бы пробелы. если так не сделать, то в других редакторах вся аккуратно расставленные отступы поедут и код станет сверхкривым. это потому, что у всех разный размер таба в пробелах.
2
|
|
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|||
| 30.01.2015, 09:08 [ТС] | |||
|
Я понял, что это экземпляр, приводился пример с автомобилем в книге.
0
|
|||
|
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||
| 30.01.2015, 09:41 | ||
|
1
|
||
|
Модератор
|
|||||||
| 30.01.2015, 14:14 | |||||||
|
Если попробовать использовать аналогии, то так:
Класс (тип, созданный пользователем) - чертёж. Объект данного типа (экземпляр класса) - изделие, выполненное по этому чертежу. Ну или вот так ещё: Класс - меню. Экземляр класса - еда. Класс - карта. Экземляр класса - территория. Класс - план здания. Экземпляр класса - само здание. Добавлено через 8 минут Чтобы проще было понимать, попробуйте отталкиваться от понимания базовых типов и типов (классов) из STL. Вот что такое тип int, или тип double, или тип char? Что такое переменная типа int? Переменная типа char? Создаёте Вы переменную по имени, скажем myVariable типа int - вот Вам и объект, тип которого int. А если создаёте переменную myString типа string, то будет Вам объект уже с другими свойствами (возможностями, ограничениями). Та же петрушка и с пользовательскими типами (то есть, классами). Только все свойства (особенности, возможности, ограничения) данного типа Вы задаёте сами. Добавлено через 11 минут Вот, к примеру, какой-то добрый и умный дядька взял и написал класс std::string. А Вы создаёте экземляр этого класса (иными словами, объект типа string) - какую-то строку. Например так:
Собственно, Вы даже можете не знать, как устроен класс string. Вам достаточно прочитать в книжке по С++ или на сайте по С++ как работают методы (функции-члены) этого класса - то есть, что же, собственно, можно делать со строками типа string. Это так же, как с автомобилем. Класс - это чертёж автомобиля. Сам автомобиль - экземляр класса (объект данного типа). По данному чертежу могут быть созданы тысячи подобных автомобилей. А водитель (пользователь) даже может не знать внутреннего устройства автомобиля - ему достаточно знать внешний интерфейс, "методы класса автомобиль" (как крутить руль, когда и на какие педали жать, как передачи переключать, как включить поворотники, аварийку, дворники и т.п.) Добавлено через 24 минуты Вы сейчас смотрите на предмет с позиции жертвы. Помните, как в школьные годы многие (а может и Вы были среди таких - я точно был) ныли: "Ох, блин, эти физики-математики, понапридумывали всякой ерунды, а мы теперь из-за них сиди, зубри, учи, мучайся".Но учёные, изобретатели, первооткрыватели, исследователи не собирались нас мучить. Они про нас не знали и не думали. Они наслаждались, когда делали свои открытия. Потому что их позиция была позицией творца, создателя, придумщика, фантазёра, мечтателя. И если Вам удастся начать думать так же, вы увидите, насколько многое стало проще и понятнее. Представьте, что Вам задали задачу - разработать язык программирования навроде С++. Если Вы будете читать книжку не с позиции ученика, который вынужден зубрить, а с позиции творца (такого же учителя-наставника, как автор учебника), изучающего методы работы своего коллеги, то Вы многие нюансы начнёте воспринимать по-другому. Добавлено через 7 минут А чисто технически - спасают и говорящие названия классов и методов, и коментарии, и многократные упражнения (создание собственных классов, помощь новичкам на форуме), и чтение книжек. Много факторов. Если Вы будете заниматься этим в течение какого-то времени и не бросите, то постепенно привыкните. Новое станет привычным, перестанет пугать и запутывать. Частенько, именно так новое знание и входит в нашу жизнь. Не во всём сразу бывает "как будто всю жизнь этим только и занимался". В каких-то сферах проще, в других нужно больше упорства, усидчивости, настойчивости, терпения, усилий, труда.
4
|
|||||||
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
||
| 30.01.2015, 17:14 [ТС] | ||
|
Добавлено через 3 минуты И еще всегда пытаюсь получить как можно больше информации, но не выходит, от этого появляются сомнительные вопросы в изучении С++, вопросы об эффективности обучения.
1
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 30.01.2015, 17:15 | |
|
А чего к ним вообще привыкать?
0
|
|
|
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
|
|
| 30.01.2015, 19:26 [ТС] | |
|
1
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 30.01.2015, 19:32 | |
|
К каждой переменной в своём проекте тоже привыкаешь? Видимо до бесконечности и времени для написания проги не остаётся. К закорючке, каких может добавляться штук до пяти в минуту, тратить время на привыкание нельзя.
0
|
|
| 30.01.2015, 19:32 | |
|
Помогаю со студенческими работами здесь
15
Добавление полей ко всем классам (не объектам) с определенным атрибутом Долго загружается Windows 7. Тормозят браузеры, долго открываются программы Долго прогружается, там где бегунок тусклый экран долго, а потом загрузка Долго загружается нетбук. Долго открываются все окна (проводник, плееры, браузеры, прочее) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|