|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Структуры и классы. Структура как простейший классСтруктура является объединением простых переменных. Эти переменные могут иметь различные типы: int, float и т. д. Переменные, входящие в состав структуры, называются полями структуры. Синтаксис структуры фактически идентичен синтаксису класса. На практике отличие структуры от класса заключается в следующем: структуры, как правило, используются в качестве объединения данных, а классы — в качестве объединения данных и функций. Определение структуры начинается с ключевого слова struct. Затем следует имя
Определение структуры part необходимо для того, чтобы создавать на его основе переменные типа part. Само определение не создает никаких переменных; другими словами, не происходит ни выделения физической памяти, ни объявления переменной. В то же время определение обычной переменной предполагает выделение памяти под эту переменную. Таким образом, определение структуры фактически задает внутреннюю организацию структурных переменных после того, как они будут определены.
19. Простой класс С++. Определение класса. Использование класса. Классы и объекты. class smallobj // определение класса { private: int somedata; // поле класса public: void setdata(int d) // метод класса, изменяющий значение поля { somedata =d; } void showdata() // метод класса, отображающий значение поля { cout << "Значение поля равно " << somedata << endl;} }; Определение начинается с ключевого слова class, за которым следует имя класса; в данном случае этим именем является smallobj. Подобно структуре, тело класса заключено в фигурные скобки, после которых следует точка с запятой (;). Конструкции, связанные с типами данных, такие, как структуры и классы, требуют после своего тела наличия точки с запятой, в отличие от конструкций, связанных с передачей управления, например функций и циклов.
Private и public Ключевой особенностью объектно-ориентированного программирования является возможность сокрытия данных. Этот термин понимается в том смысле, что данные заключены внутри класса и защищены от несанкционированного доступа функций, расположенных вне класса. Если необходимо защитить какие-либо данные, то их помещают внутрь класса с ключевым словом private. Такие данные доступны только внутри класса. Данные, описанные с ключевым словом public, напротив, доступны за пределами класса.
Объект является экземпляром класса. Класс smallobj определяется в начале программы. Позже, в функции main(), мы определяем два объекта s1 и s2, являющихся экземплярами класса smallobj: smallobj s1, s2; // определение объектов класса smallobj s1.setdata(1066); // вызовы метода setdata() s2.setdata(1776); s1.showdata(); // вызовы метода showdata() s2.showdata();
20. Простой класс С++. Синтаксис и правила описания классов в С++. Вызов методов класса. class smallobj // определение класса { private: int somedata; // поле класса public: void setdata(int d) // метод класса, изменяющий значение поля { somedata =d; } void showdata() // метод класса, отображающий значение поля { cout << "Значение поля равно " << somedata << endl;} }; Определение начинается с ключевого слова class, за которым следует имя класса; в данном случае этим именем является smallobj. Подобно структуре, тело класса заключено в фигурные скобки, после которых следует точка с запятой (;). Конструкции, связанные с типами данных, такие, как структуры и классы, требуют после своего тела наличия точки с запятой, в отличие от конструкций, связанных с передачей управления, например функций и циклов. Private и public Ключевой особенностью объектно-ориентированного программирования является возможность сокрытия данных. Этот термин понимается в том смысле, что данные заключены внутри класса и защищены от несанкционированного доступа функций, расположенных вне класса. Если необходимо защитить какие-либо данные, то их помещают внутрь класса с ключевым словом private. Такие данные доступны только внутри класса. Данные, описанные с ключевым словом public, напротив, доступны за пределами класса.
Объект является экземпляром класса. Класс smallobj определяется в начале программы. Позже, в функции main(), мы определяем два объекта s1 и s2, являющихся экземплярами класса smallobj: smallobj s1, s2; // определение объектов класса smallobj s1.setdata(1066); // вызовы метода setdata() s2.setdata(1776); s1.showdata(); // вызовы метода showdata() s2.showdata();
21. Классы С++. Сокрытие данных и доступность методов (спецификаторы доступа private и public). Ключевой особенностью объектно-ориентированного программирования является возможность сокрытия данных. Этот термин понимается в том смысле, что данные заключены внутри класса и защищены от несанкционированного доступа функций, расположенных вне класса. Если необходимо защитить какие-либо данные, то их помещают внутрь класса с ключевым словом private. Такие данные доступны только внутри класса. Данные, описанные с ключевым словом public, напротив, доступны за пределами класса. Сокрытие данных в нашем толковании означает ограждение данных от тех частей программы, которые не имеют необходимости использовать эти данные. В более узком смысле это означает сокрытие данных одного класса от другого класса. Сокрытие данных позволяет уберечь опытных программистов от своих собственных ошибок. Программисты могут сами создать средства доступа к закрытым данным, что значительно снижает вероятность случайного или некорректного доступа к ним.
22. Классы С++. Определение методов класса вне класса. Объекты программы и объекты реального мира. Класс как тип данных. class smallobj // определение класса { private: int somedata; // поле класса public: void setdata(int d) // метод класса, изменяющий значение поля { somedata =d; } void showdata() // метод класса, отображающий значение поля { cout << "Значение поля равно " << somedata << endl;} }; Методы класса — это функции, входящие в состав класса. Класс smallobj содержит два метода: setdata() и showdata(). Тела обоих методов состоят из одного оператора, который записан на одной строке с фигурными скобками, ограничивающими тело функции. Поскольку методы setdata() и showdata() описаны с ключевым словом public,
Определение методов класса вне класса До сих пор мы всегда определяли методы класса внутри самого класса. На самом деле это не является обязательным. В примере ENGLCON метод add_dist() определен вне класса Distance(). Внутри определения класса содержится лишь прототип функции add_dist(); void add_dist(Distance, Distance); Такая форма означает, что функция является методом класса, однако ее определение следует искать не внутри определения класса, а где-то в другом месте листинга. В примере ENGLCON функция add_dist() определена позже, чем класс Distance(): void Distance::add_dist (Distance dd1, Distance dd2) { inches = dd1.inches + dd2.inches; // сложение дюймов feet = 0; // с возможным заемом if(inches >= 12.0) // если число дюймов больше 12.0, { // то уменьшаем число дюймов inches -= 12.0; // на 12.0 и увеличиваем feet++; // число футов на 1 } feet += dd1.feet + dd2.feet; // сложение футов } Заголовок функции содержит не встречавшиеся нам ранее синтаксические элементы. Перед именем функции add_dist() стоит имя класса Distance и новый символ::. Этот символ является знаком операции глобального разрешения. Такая форма записи устанавливает взаимосвязь функции и класса, к которой относится эта функция. В данном случае запись Distance::add_dist() означает, что функция add_dist() является методом класса Distance: void Distance::add_dist(Distance dd1, Distance dd2)
Зачастую объекты, использующиеся в программе, представляют реальные физические объекты. В таких ситуациях проявляется взаимодействие между программой и реальным миром.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |