Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 63097
Имитационное мо... 58367
Реклама
Сейчас на сайте
Гостей: 8
На сайте нет зарегистрированных пользователей

Пользователей: 13,092
новичок: VinDrossel
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование работы крупного аэропорта на GPSS + Пояснительная записка
Компьютерный магазин на Turbo Pascal (База данных) + Пояснительная записка
Метод половинного деления для нахождения корня уровнения на Turbo Pascal...

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Лабораторное занятие №1. Класс в С++
Класс является фундаментальным понятием объектно-ориентированного
программирования. Являясь расширением понятия структуры, он позволяет
создавать типы данных и определять функции (методы), которые задают
поведение этого типа. Например, класс «точка» обладает координатами x, y и
функцией Move (переместить), которая изменяет координаты точки. Каждый
представитель (экземпляр) класса называется объектом.

Определение класса
Определение класса напоминает определение структуры в С, за исключением
того, что:
• Содержит одну или несколько спецификаций доступа, задаваемых с
помощью ключевых слов public, protected и private;
• Вместо ключевого слова struct применяется ключевое слово class;
• Включает в себя функции (методы) наряду с элементами данных;
• Обычно имеются специальные функции, такие, как конструктор (функция с
именем, что и сам класс) и деструктор (функция, именем которой является
сам класс с префиксом-тильдой (~)).
Управление доступом
В языке С элементы структуры доступны для любой функции в пределах
области действия структуры, что часто приводит к неверным изменениям
данных внутри структуры из-за невнимательности (нарушается принцип
инкапсуляции). В С++ можно ограничить доступ к данным и методам
(функциям класса) при помощи спецификаторов доступа: private, protected,
public. Метка-спецификатор действует на все следующие за ней объявления,
пока не встретится следующая метка или кончится определение класса.
Таблица 1
Лабораторное занятие №1. Класс в С++
Задание №1
Объявить класс «Прямоугольник», заданный четырьмя координатами.
Предусмотреть метод изменения размеров и функцию вычисления площади
прямоугольника.

Элементы класса
Элементы класса делятся на две основные категории:
• Элементы данных (иногда называемые членами класса);
• Элементы-функции (иногда называемые методами или функциями-членами
класса);
Элементы данных.
Элементы-данные похожи на элементы структур языка с некоторыми
дополнениями.
• Элементы-данные не могут определяться как auto, extern или register.
5 Объектно-ориентированное программирование на С++.
• Элементами данных могут быть перечислимые типы, битовые поля или
представители ранее объявленных классов.
• Элементом данных не может быть представитель самого этого класса.
• Элементом данных класса может являться указатель или ссылка на
представитель этого класса.
Пример №2
class A
{
int aa;
int bb;
void C();
};

class B
{
register int a; // Ошибка! Объявлено как register.
int aa; // OK. Объявление скалярного типа.
unsigned ui[10]; // OK. Объявление массива.
B b; // Ошибка! Представитель самого класса B.
B* pb; // ОК. Указатель на класс B.
A a; // OK. Класс A объявлен.
A* pa; // OK. Указатель на класс А.
};




Задание №2
Определить класс «точка» (см. Пример №1). Переработать ранее
определённый класс «прямоугольник», где элементами данных «координаты»
являются представители класса «точка». Применить различные
спецификаторы доступа (private, protected, public) для защиты данных класса.

Элементы-функции
Элемент-функция является функцией, объявленной (описанной) внутри
определения класса. Тело функции может определяться внутри определения
класса; в этом случае функция называется встроенной (inline). Когда тело
функции определяется вне класса, перед именем функции ставится префикс из
имени класса и операции разрешения видимости (::).

Общий формат:
[<возвращаемое значение>] [<спецификаторы функции>]
<Класс>::<функция>([<параметры>])
6 Объектно-ориентированное программирование на С++.


Пример №3
В примере функция Move реализована как встроенная.

class Point // class Point (точка)
{
private:
int x;
int y;
public:
void Move ( int newX, int newY)
{
x = newX;
y = newY;
return;
}
};

























Пример №4
В примере функция Move реализована вне класса Point

class Point // class Point (точка)
{
private:
int x;
int y;
public:
void Move ( int newX, int newY);
};
void Point::Move ( int newX, int newY)
{
x = newX;
y = newY;
return;
}

























Задание №3
В ранее определённом классе «Прямоугольник» реализовать метод изменения
размеров фигуры как встроенный. Реализовать метод вычисления площади
фигуры вне тела класса.
7 Объектно-ориентированное программирование на С++.
Доступ к элементамданных
Функции-элементы находятся в области действия класса, котором они
определены. Обычные функции или методы другого класса могут получить
доступ к элементам данных и к методам с помощью операции . или –>,
применяемых соответственно к представителю или указателю на представитель
класса.













Пример №4
class Point
{
public:
int x;
int y;
void Move(int newX, int newY);
};





























Примера №4 (продолжение)
int main()
{
Point pt; // Создать локальный объект
Point * ppt = new Point; // создать указатель на объект.

// работа с локальным объектом
pt.x = 0;
pt.y = 10;
pt.Move(0, 10);

// работа с указателем на объект
ppt->Move(10, 20);
ppt->x = 10;
ppt->y = 20;

delete ppt; // Удалить объект
return 0;
}








8
Помните, что если Вы создаёте локальный объект, он будет
автоматический разрушен при выходе из подпрограммы, где он создан.
Динамически создаваемые объекты не разрушаются до тех пор, пока Вы
сами их не удалите посредством оператора delete. Объектно-ориентированное программирование на С++.



Задание №4
Создать локальный объект класса «Прямоугольник», ранее определённого.
Задать его координаты и вывести на печать площадь фигуры.

Задание №5
Динамически создать объект класса «Прямоугольник», ранее определённого.
Задать его координаты и вывести на печать площадь фигуры.
Опубликовал Kest February 24 2014 21:21:47 · 0 Комментариев · 2574 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Delphi 6 программ...
Sztransppanel
AntiRus
Задача о 8ми ладьях
PolyFlow
С# для профессион...
MiniChat
isoCanvas (Редакт...
Базы данных в Инт...
Assembler. Практикум
DemoEdit [Исходни...
Crystal Button
ИНТЕРНЕТ ПРОГРАММ...
Ведение справочны...
Форма в форме
Xrumer 4 Platinum...
FilesInfo
PrevInst
C++ Builder: Книг...
BDEPack

Топ загрузок
Приложение Клие... 100481
Delphi 7 Enterp... 87911
Converter AMR<-... 20082
GPSS World Stud... 13591
Borland C++Buil... 12072
Borland Delphi ... 8676
Turbo Pascal fo... 7048
Visual Studio 2... 5005
Калькулятор [Ис... 4913
FreeSMS v1.3.1 3545
Случайные статьи
Установка переключ...
VIRTUAL expected
AVL-деревья
Поиск минимума фун...
Процедура GetLineS...
В UNIX приняты раз...
Объединение SLAAC ...
Нестандартные искл...
Служба RunAsСлужба...
станциямиЗащитить ...
Использование функ...
Операторы класса n...
Эксперименты с при...
Стандартные матема...
Invalid variable r...
Виртуальные слоты
Интерес представля...
Диалоговые окна
Работа с внешней п...
Пример работы эксп...
Программирование: ...
Установка CMS Word...
Создание простейше...
Обход дерева
Оператор цикла repeat
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?