Навигация
Главная
Поиск
Форум
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
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Создание отчето... 63570
Модуль Forms 63395
ТЕХНОЛОГИИ ДОСТ... 60183
Пример работы с... 59285
Имитационное мо... 55625
Реклама
Сейчас на сайте
Гостей: 19
На сайте нет зарегистрированных пользователей

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

Моделирование станции технического обслуживания на GPSS + Отчет
Моделирование автомойки на GPSS + Отчет + Блок схемы
Моделирование литейного цеха на GPSS + Пояснительная записка

Реклама



Подписывайся на 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 Комментариев · 2417 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
База игр
Переработанный пл...
ADVstatusbar
Preview
Учебник для продв...
Философия C++. Пр...
Андрей Боровский....
Х. М. Дейтел, П. ...
Crystal Button
Экранная лупа
DiZsubmit
Приемы программир...
Dealer
DirHTMLReportBuil...
Программирование ...
OnlineIP
Atb
WAP версия сайта
Программирование ...
AlnComponents

Топ загрузок
Приложение Клие... 100444
Delphi 7 Enterp... 85618
Converter AMR<-... 20065
GPSS World Stud... 12473
Borland C++Buil... 11526
Borland Delphi ... 8481
Turbo Pascal fo... 7020
Visual Studio 2... 4987
Калькулятор [Ис... 4728
FreeSMS v1.3.1 3533
Случайные статьи
Рекурсивные методы...
Как запускать прог...
Декартовое произве...
Unit expected
Разработка плана б...
Язык программирова...
Если вы не работае...
Работа со списками...
Повторяющиеся дейс...
ТАБЛИЦЫ В GPSS
Wizard) 317RPC (Re...
Листинг 13.3. Испо...
Циклические коды и...
Форматы цифрового ...
Любые игры онлайн ...
Filles kazakh
Датчики приближения
библиотеки giu
Вывод текста в реж...
Серверные скрипты....
Планирование
Шаблон типа regex
Раскрытая запись а...
Прерывание и обраб...
Где купить сила им...
Статистика



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


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