Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
1

Долго ли вы привыкали к объектам и классам?

29.01.2015, 20:54. Показов 1517. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Недавно дошел до главы, где начинаются классы, объекты и т.п... До сих пор, всё делал в функции main и там всё писал по порядку, так и выполнялось. А сейчас взять тот же класс, в нем объект, который имеет некоторое кол-во элемент-функций. В общем, принцип я понял, но как-то привыкнуть не могу, если попытаюсь создать свой класс - не могу выполнить задачу, одни косяки... Еще эти аргументы функций.. Что-то и куда-то возвращает значение.. Ужс
У всех были подобного типа сложности? И если да, то справились ли вы?)

И как вообще можно всё упомнить, когда пишешь код? Одна элемент-функция делает одно, другая - другое, одна куда-то возвращает какое-то значение и т.п. Ну это ладно, у меня в классе всего один объект и несколько элем.-функций, а что если куча этих классов и объектов? Комментарии спасают?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.01.2015, 20:54
Ответы с готовыми решениями:

Задача по объектам и классам
Задача из книги Праты. Дан заголовочный файл, нужно определить методы и написать программу....

Посоветуйте литературу по объектам и классам
Посоветуйте литературу по объектам и классам...

Задача по классам и объектам
Описать указанный класс (методы перечислены в скобках, поля выбрать самостоятельно). Создать и...

Назовите что это? Определения по классам, объектам и методам
Назовите что это? Тема: классы, объекты и методы. Назовите как называется или проверьте правильно...

14
102 / 44 / 18
Регистрация: 08.01.2015
Сообщений: 97
29.01.2015, 20:59 2
Цитата Сообщение от kalonord Посмотреть сообщение
Долго ли вы привыкали к объектам и классам?
С первой дозы . А чё ?
0
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
29.01.2015, 21:00  [ТС] 3
И да, спустя долгое время понял, что возвращают функции и куда. Если бы сразу знал, что int = integer,
char - character и т.п. то было бы проще, английский чуть-чуть помогает в понимании.

Добавлено через 48 секунд
Цитата Сообщение от Phoenix_Max Посмотреть сообщение
А чё ?
Интерес.
0
102 / 44 / 18
Регистрация: 08.01.2015
Сообщений: 97
29.01.2015, 21:08 4
Как -то не парился особо. В чужих библиотеках пришлось разбираться. А потому пришлось осваивать классы,ООП и т.д и тп. Постепенно на С++ и С# переполз. Иначе сидел бы на Си.
1
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
29.01.2015, 21:17 5
Цитата Сообщение от kalonord Посмотреть сообщение
И как вообще можно всё упомнить, когда пишешь код? Одна элемент-функция делает одно, другая - другое, одна куда-то возвращает какое-то значение и т.п. Ну это ладно, у меня в классе всего один объект и несколько элем.-функций, а что если куча этих классов и объектов? Комментарии спасают?
Называй функции согласно их назначению.
Не делай слишком большие функции (если не помещается в один экран - это уже повод подумать).
Называй параметры функций понятными именами, согласно их назначению.
Тоже самое относится к именам классов.
Пользуйся const в тех случаях, где он необходим.
Комментарии, как правило, не спасают, т.к. имеют свойство устаревать. Это особенно заметно в больших проектах. Но комментирование сложных участков кода является, тем не менее, хорошей практикой. Но как и любым инструментом, комментариями не стоит злоупотреблять.
2
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
30.01.2015, 00:31  [ТС] 6
Цитата Сообщение от DrOffset Посмотреть сообщение
если не помещается в один экран - это уже повод подумать
А как быть с тем, если у меня монитор 1024х768? Получается, что на широкоформатниках еще место будет в строке. В принципе то мне сейчас всё равно, я только с примерами из учебника работаю. Просто интересно, как можно сделать, допустим, чтоб исходник на всех мониторах отображался одинаково.
0
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
30.01.2015, 00:42 7
никак. на счет помещения на монитор - это примерная метрика. в строчках еще измеряют.
со временем придет понимание что длинно, а что номр.
на счет одинаково выглядящих исходников: тут разве что настроить свой редактор,
чтобы он вместо табов пробелы втыкал. не важно сколько, лишь бы пробелы.
если так не сделать, то в других редакторах вся аккуратно расставленные отступы поедут
и код станет сверхкривым. это потому, что у всех разный размер таба в пробелах.
2
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
30.01.2015, 00:48 8
Цитата Сообщение от kalonord Посмотреть сообщение
взять тот же класс, в нем объект, который имеет некоторое кол-во элемент-функций. В общем, принцип я понял
Вот как-то сомневаюсь я в том, что понял. А вот еще
Цитата Сообщение от kalonord Посмотреть сообщение
у меня в классе всего один объект и несколько элем.-функций
объект - экземпляр класса. А что Вы подразумеваете под понятием "объект"?
0
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
30.01.2015, 09:08  [ТС] 9
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
А что Вы подразумеваете под понятием "объект"?
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
объект - экземпляр класса
Получается, что не так выразился. Имел в виду объект, принадлежащий классу. Или опять не так?

Я понял, что это экземпляр, приводился пример с автомобилем в книге.
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
30.01.2015, 09:41 10
Цитата Сообщение от kalonord Посмотреть сообщение
Или опять не так?
Если есть сложности с терминологией, напишите минимальный понятный пример кода.
1
Модератор
Эксперт CЭксперт С++
5286 / 2373 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
30.01.2015, 14:14 11
Если попробовать использовать аналогии, то так:
Класс (тип, созданный пользователем) - чертёж. Объект данного типа (экземпляр класса) - изделие, выполненное по этому чертежу.

Ну или вот так ещё:
Класс - меню. Экземляр класса - еда.
Класс - карта. Экземляр класса - территория.
Класс - план здания. Экземпляр класса - само здание.

Добавлено через 8 минут
Чтобы проще было понимать, попробуйте отталкиваться от понимания базовых типов и типов (классов) из STL.
Вот что такое тип int, или тип double, или тип char?
Что такое переменная типа int? Переменная типа char?

Создаёте Вы переменную по имени, скажем myVariable типа int - вот Вам и объект, тип которого int.
А если создаёте переменную myString типа string, то будет Вам объект уже с другими свойствами (возможностями, ограничениями).

Та же петрушка и с пользовательскими типами (то есть, классами). Только все свойства (особенности, возможности, ограничения) данного типа Вы задаёте сами.

Добавлено через 11 минут
Вот, к примеру, какой-то добрый и умный дядька взял и написал класс std::string.
А Вы создаёте экземляр этого класса (иными словами, объект типа string) - какую-то строку.
Например так:
C++
1
string myFirstString = "At last, my first string has been created. I'm so happy!";
Что Вы сделали? Вы создали объект класса string. Или, другими словами, экземпляр класса string. Переменную типа string. Строку типа string.

Собственно, Вы даже можете не знать, как устроен класс string. Вам достаточно прочитать в книжке по С++ или на сайте по С++ как работают методы (функции-члены) этого класса - то есть, что же, собственно, можно делать со строками типа string.

Это так же, как с автомобилем. Класс - это чертёж автомобиля. Сам автомобиль - экземляр класса (объект данного типа). По данному чертежу могут быть созданы тысячи подобных автомобилей. А водитель (пользователь) даже может не знать внутреннего устройства автомобиля - ему достаточно знать внешний интерфейс, "методы класса автомобиль" (как крутить руль, когда и на какие педали жать, как передачи переключать, как включить поворотники, аварийку, дворники и т.п.)

Добавлено через 24 минуты
Цитата Сообщение от kalonord Посмотреть сообщение
И как вообще можно всё упомнить, когда пишешь код? Одна элемент-функция делает одно, другая - другое, одна куда-то возвращает какое-то значение и т.п. Ну это ладно, у меня в классе всего один объект и несколько элем.-функций, а что если куча этих классов и объектов? Комментарии спасают?
Спасает смена ракурса, смена точки зрения. Другими словами, расширение восприятия, сдвиг точки сборки.
Вы сейчас смотрите на предмет с позиции жертвы. Помните, как в школьные годы многие (а может и Вы были среди таких - я точно был) ныли: "Ох, блин, эти физики-математики, понапридумывали всякой ерунды, а мы теперь из-за них сиди, зубри, учи, мучайся".
Но учёные, изобретатели, первооткрыватели, исследователи не собирались нас мучить. Они про нас не знали и не думали. Они наслаждались, когда делали свои открытия. Потому что их позиция была позицией творца, создателя, придумщика, фантазёра, мечтателя. И если Вам удастся начать думать так же, вы увидите, насколько многое стало проще и понятнее.
Представьте, что Вам задали задачу - разработать язык программирования навроде С++. Если Вы будете читать книжку не с позиции ученика, который вынужден зубрить, а с позиции творца (такого же учителя-наставника, как автор учебника), изучающего методы работы своего коллеги, то Вы многие нюансы начнёте воспринимать по-другому.

Добавлено через 7 минут
А чисто технически - спасают и говорящие названия классов и методов, и коментарии, и многократные упражнения (создание собственных классов, помощь новичкам на форуме), и чтение книжек. Много факторов. Если Вы будете заниматься этим в течение какого-то времени и не бросите, то постепенно привыкните. Новое станет привычным, перестанет пугать и запутывать. Частенько, именно так новое знание и входит в нашу жизнь. Не во всём сразу бывает "как будто всю жизнь этим только и занимался". В каких-то сферах проще, в других нужно больше упорства, усидчивости, настойчивости, терпения, усилий, труда.
4
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
30.01.2015, 17:14  [ТС] 12
Цитата Сообщение от gru74ik Посмотреть сообщение
В каких-то сферах проще, в других нужно больше упорства, усидчивости, настойчивости, терпения, усилий, труда
Иногда читаю и что-то напрочь не понимаю, даже если объяснять будут подробно, кидаю программирование со словами "может быть не дано?". В итоге всё равно возвращаюсь к СПП и каким-то таинственным образом те вещи, которые не понимал, стали понятными, хотя я с ними вообще не связывался, просто пришло понимание со временем и всё.

Добавлено через 3 минуты
И еще всегда пытаюсь получить как можно больше информации, но не выходит, от этого появляются сомнительные вопросы в изучении С++, вопросы об эффективности обучения.
1
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 17:15 13
А чего к ним вообще привыкать?
0
28 / 28 / 5
Регистрация: 27.01.2014
Сообщений: 784
30.01.2015, 19:26  [ТС] 14
Цитата Сообщение от taras atavin Посмотреть сообщение
А чего к ним вообще привыкать?
Ко всему новому в какой-то степени надо привыкать, разве нет?
1
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
30.01.2015, 19:32 15
К каждой переменной в своём проекте тоже привыкаешь? Видимо до бесконечности и времени для написания проги не остаётся. К закорючке, каких может добавляться штук до пяти в минуту, тратить время на привыкание нельзя.
0
30.01.2015, 19:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2015, 19:32
Помогаю со студенческими работами здесь

Добавление полей ко всем классам (не объектам) с определенным атрибутом
static class Program { static void Main() { var types...

Долго загружается Windows 7. Тормозят браузеры, долго открываются программы
При старте системы после логотипа Windows на черном фоне появляется привычный синий фон Windows где...

Долго прогружается, там где бегунок тусклый экран долго, а потом загрузка
JcXM1tJV3c8

Долго загружается нетбук. Долго открываются все окна (проводник, плееры, браузеры, прочее)
Добрый вечер. В последнее врем нетбук стал очень долго "думать". Почистил память в дисках C и D....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru