Char z;
cin>>z;
}
Как всегда, для С++ действует правило – переменная должна быть описана до первого обращения к ней. В данном случае описание структуры вынесено перед функцией main, хотя описание структуры можно выполнить внутри функции main. Попробуйте это сделать самостоятельно.
Следует еще обратить внимание, что имя структуры, это не объект (т.е. не исполняемая программа), а только тип, по образцу которого строятся подобные друг другу объекты.
На первый взгляд структура такая же простая конструкция как массив. Но это не так. В отличие от массивов структуры могут иметь функции, которые описываются вне тела структуры. В этом случае в теле структуры записывается прототип функции.
Класс – это некий проект, из которого создается объект. В классе заложены свойства и поведение будущего объекта, который получается из класса как из проекта. Примером объекта может являться какое-нибудь обобщающее понятие, например, «фрукт». Никто не видел объекта «фрукт», хотя все знают его свойства, это могут быть форма, цвет, размеры, вес и т.п. Объектом может быть живое существо, например, «собака». Такой объект обладает не только свойствами, но он может выполнять определенные действия, например, сидеть, лежать, бегать.
Объект – элемент окружающего нас мира, с которым мы встречаемся в повседневной жизни. Например, проект дома серии 135 – это класс, а сам конкретный дом, построенный по конкретному адресу – это объект класса домов серии 135. Таким образом, объекты реального мира в плане их состояния и поведения, можно рассматривать как классы и объекты.
Особенностью программирования является то, что и классы и объекты это программный код. В этом случае классы следует рассматривать как проект (документация) по которому будут строиться рабочие программы – объекты.
Объектно-ориентированное программирование – это способ программирования с ориентацией на объекты. При таком способе создаются крупные программные образования – классы. В классы закладываются общие свойства будущих объектов, которые будут получены по определенным правилам из этих классов. В классах должны быть предусмотрены варианты поведения будущих объектов через создаваемые в классах функции (методы классов). Такой способ значительно ускоряет разработку программного обеспечения и облегчает труд программистов.
В классах задаются элементы, называемые свойствами. Они хранятся в виде переменных и констант, называемых полями. Поведение объекта описывается специальными функциями, которые в классах носят название методов. Когда свойствам класса присваиваются какие-то конкретные значения, то тем самым из класса создается конкретный объект. Объекты создаются специальным методом класса, называемым конструктором.
Методыобрабатывают внутренние состояния объекта и обеспечивают механизм взаимодействия между объектами. В качестве приера рассмотрим класс велосипедов. Свойствами, характеризующими состояния объектов этого класса, будут: текущая скорость, текущее состояние переключателя педали (изменение скорости), количество шестеренок и текущая шестеренка, за счет которой скорость изменяется. Методами, которые изменяют состояние велосипеда будут: смена шестеренки, переключение педали и изменение скорости. Весь этот механизм изменения свойств методами класса спрятан внутри самого класса. Такой принцип взаимодействия элементов класса носит название инкапсуляции данных. Это фундаментальный принцип объектно-ориентированного программирования.
Фактическая польза от механизма классов-объектов состоит в том, что:
1. обеспечивается модульность программирования: исходный код объекта написан и поддерживается независимо от исходных кодов других объектов (т.е. повышается надежность всей задачи, программа которой состоит из цепочки таких независимых модулей).
2. механизм работы такого модуля скрыт внутри самого модуля и не отвлекает программиста на выяснение различных мелких деталей алгоритма.
3. имеется возможность многократного использования элемента (подобно тому, как используется многократное обращение к библиотеке стандартных программ).
4. обеспечивается легкая сменяемость элементов в общей программе (в приложении): если такой элемент выходит из строя, его можно легко заменить аналогичным элементом, не разрушая всю задачу.
Существуют разработчики классов и пользователи классов (разработчики приложений): если разработчик создает классы, то пользователь манипулирует классами и экземплярами классов.
Класс – это обыкновенный тип. Если вы программист, то всегда имеете дело с типами и экземплярами, даже если и не используете эту терминологию. Например, вы создаете различные переменные типа int. Можно сказать, что вы фактически создаете различные экземпляры переменных этого типа. Классы обычно более сложны, чем простые типы данных, но они работают тем же способом. Создавая переменные типа заданного класса, вы создаете экземпляры этого класса, а назначая различные значения экземплярам того же типа (как и переменные типаint), вы можете выполнять разные задачи.
Класс – это собрание связанной информации, которая включает в себя и данные, и функции (программы для работы с данными). Эти функции в классах называются методами.
Класс – это дальнейшее развитие структур: в них тоже объединяются данные разных типов. Это такой шаблон, под который (как и под структуру) память выделяется только тогда, когда мы создаем «переменную типа этого шаблона». Вспомним, что если у нас была некая структура А, то чтобы работать с ней, мы создавали экземпляр этой структуры апутем объявления А а; а затем уже работали с экземпляром а. Можно сказать, что мы объявляли переменную а типа А.
Точно так же поступают и для класса: если есть класс А (шаблон, под него память не выделяется), то объявляют переменную типа А путем объявления А а;, после чего можно работать уже как бы с самим классом, а на самом деле – с его экземпляром а. Как и при использовании структур, к членам класса (данным и методам) можно обращаться по тем же правилам: если объявлено А а;, то обращение к члену класса с именем аа будет записываться как а.аа, а если был объявлен указатель на класс (например, как А *а;), то обращение к члену класса с именем аа будет записываться как а->аа.
Класс – это конструкция, параметрически определяющая некоторую категорию объектов. Например, может быть класс компьютеров, который объединяет в себе компьютеры разных марок, разных возможностей. Может быть класс столов: столы письменные, обеденные и т.п. Класс столов может делиться на подклассы: столы письменные, которые, в свою очередь могут делиться на столы письменные дубовые и столы письменные древесноволокнистые и т.д. Мы видим, что классы могут принадлежать некой иерархии классов. В каждом классе определены характеристики тех объектов, которые образуют этот класс.
В классе также задаются программы, называемые методами, которые обрабатывают характеристики объектов, принадлежащих данному классу. Поведение объекта в реальном мире определяется его характеристиками. Изменяя значение характеристик, мы получаем разное поведение объектов. Когда мы создаем экземпляр класса и определяем значения его конкретных характеристик, то получаем конкретный объект.
В составе класса существует специальный метод (т.е. программа-функция), который формирует экземпляр класса. Этот метод носит название конструктора. В противоположность конструктору, существует программа – деструктор, которая уничтожает экземпляр класса в памяти, освобождает память, которая может использоваться для других программных целей. А если вспомнить, что память – величина не беспредельная, то становится понятной и роль деструктора.
Дата добавления: 2015-07-30; просмотров: 645;