![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Dodge |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 21.10.2006 Репутация: нет Всего: нет |
У меня вот проблема большая... Я сколько учебников уже перечитал, вот не смог я понять классы. Что это и с чем его едят???
Про них знаю только то что как они создаются. А вот их сущность и как с ними управляться я нифига не знаю. Кто нибудь ПОНЯТНЫМ ЯЗЫКОМ может объснить мне их ну или дать ссылочку на литературу... Мне вот задали создать вещественный класс Вектор с функциями доступа к его объектам членам и функцией вывода объекта класса на экран. У кого нибудь может завалялся этот класс или может кто напишет. Пожалуйста объсните только каждую строчку написанного кода... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Обчно с этим проблем не у кого не возникает http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%...%D0%B8%D0%B5%29 Поищи на этом форуме. Тут часто такие пишут |
|||
|
||||
| Gwendolen |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 5.4.2005 Репутация: нет Всего: 1 |
А так учиться и учиться, написать не пример, а реальную программу , выполняющую чтонибудь полезное и вскоре все станет ясно. --------------------
Наносите пользу и причиняйте добро! |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: нет Всего: 17 |
к сожалению это не "понятный язык"
Вообщем даже незнаю как растолковать Вообщем класс это набор функции или объектов или того и другого, их главная фишка это наследование, т.е. то что переменный класса наследуют все их методы(методы это тоже что и функции но в классе) Ты наверняка играеш в компьютерные игры, вот и рассмотрим на фоне их: Допустим какаянить стратежка: В твоей стратегии есть отряды(скажем отряд из 10 человек) у отряда есть свои свойства(опыт, ранг, кол-во убитых раненых допустим из-10 после боя осталось 4) если бы писались процедуры для этого(или ещё хуже небыло бы процедур) то код игры был ОГРОМЕН, были бы миллионы строк кода и из-за этого бы игра требовала уйму ресурсов, но умные головы вначале придумали процедуры и функции, а потом и до классов дошли но мы отвлеклись, вот твой отряд, программисты создают класс ЧЕЛОВЕК(и набивают его различными сво-вами человека(функциями)) когда ты строиш отряд то в другой класс(ОТРЯД(также с функциями присущеми отряду, ну там мораль и т.д.)) добавляются 10 таких классов "человек", максимальное кол-во человек в одном втором классе 10, после боя из класса ОТРЯД убирают погибших(в нашем случае 6) а выжившим даются бонус опыта, звание какоенить и т.д. в случае если ты решишь полечить своих солдат в больнице, то в класс ОТРЯД добявятся недостоющие ЧЕЛОВЕКИ(т.е. классы) Короче очень замудренно, не быдь мне преподователем но вот суть: БЛАГОДАРЯ КЛАССАМ МОЖНО ЗНАЧИТЕЛЬНО УПРОСТИТЬ АЛГОРИТМ ПРОГРАММЫ, УМЕНЬШИТЬ НАГРУЗКУ НА СИСТЕМУ(РЕСУРСЫ ПК), УМЕНЬШИТЬ КОЛ_ВО СТРОК КОДА, А БЛАГОДАРЯ ЭТОМУ ТЕБЕ БУДЕТ ЛЕГЧЕ НАЙТИ ОШИБКУ ИЛИ ПРОАПГРЕЙДИТЬ ПРОГРАММУ и т.п. Ещё я понял что класс это просто-напросто тобою созданный тип(ну такой как int,float и т.д. с присущеми св-вами допустим если бы ты сделал класс int то тебе бы пришлось делать возможность(писать процедуры) сложения, деления, умножения, перепода типа int в др. и т.д.) Классы рулёз, сам недавно начал С++ учить, классы понял, и мне этот язык с каждым днём всё больше и больше нравиться, глюков конечно уйма(может и не глюков, может это я такой грамотей В твоей же задаче тебе сказано сделать класс вектор, т.е. ты в зависимости от дальнейшего его использования должен сделать класс с набором функций(методов и св-в) т.е. пользователь допустим захочет его построить, для этого нужна процедура построения(т.е. делай функцию построения в которую будут передаватся координаты вектора), сделай возможность построения двух векторов и проверку их пересечения\расхождения(для этого нужно будет завести две переменные твоего класса), сделай функцию благодаря которой пользователь после построения нескольких векторов смог бы их перемножить один на другой и т.д. и т.п. Сложно конечно но если чтонить подобное сделаеш помимо высшего балла приобретёш бесценный опыт, тебе дали прекрасную задачу, если ты хорошенько над ней поработаеш(и над собой тоже) то через пару продуктивных дней ты будеш гуру в классе(группе) вообщем УДАЧИ_УДАЧИ_УДАЧИ и ещё раз УДАЧИ P.S. Во я навернул -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| skyboy |
|
||||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
"примитивные" типы -> массивы -> записи(структуры) -> классы И все это направлено в сторону быстрой разработки, легкого понимания и простого использования. |
||||
|
|||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: нет Всего: 17 |
Скайбой истину глаголит
-------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| regis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 12.12.2005 Где: Москва, Россия Репутация: 2 Всего: 7 |
Тут я бы начал с того, что класс -- это МЕХАНИЗМ АБСТРАКЦИИ. Т.е. это средство создания объектов, абстрагирующих некие концепции из реального мира (особ. в программах-симуляторах или компьютерных играх), или, скажем, мира математики (векторы, матрицы, множества и т.п.)
Идеальный класс -- это "черный ящик", объекты которого создаваются исключительно конструктром, и взаимодействие с ними осуществляется только посредством методов. Наследование -- механизм, позволяющий создавать новые классы на основе уже определенных (суперклассов), расширяя, таким образом, их функциональность. Полиморфизм -- позволяет давать методам новые определения в подклассах, определяя таким образом специфику их поведения. Главное -- в основных концепциях ООП четко разобраться, потом будет проще. --------------------
В. В чем разница между hardware и software?О. В отличие от второго, по первому можно двинуть кулаком или пнуть ногой. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |