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

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

Программа тестирования (тест) - вступительные экзамены (математика, физи...
Изменения контуров и сортировка в двумерном массиве чисел на Turbo Pasca...
Моделирование работы ЭВМ на 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 Комментариев · 2199 Прочтений · Для печати

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


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



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 2006 - Спр...
Панель Календарь
Библия для програ...
Allsubmitter 4.7 ...
Пример работы с б...
Blobs [Исходник н...
Защита от спама ...
Crypt32
Программа предназ...
3d Tank [Исходник...
Моделирование дви...
Меню проводника в...
Файловый менеджер
Программирование ...
Пятнашки и крести...
TsHintManager
MicroGPSS Studen ...
Bitmap [для кнопок]
Scrrlcaptoin

Топ загрузок
Приложение Клие... 100399
Delphi 7 Enterp... 84059
Converter AMR<-... 20052
GPSS World Stud... 11502
Borland C++Buil... 11306
Borland Delphi ... 8257
Turbo Pascal fo... 6994
Visual Studio 2... 4975
Калькулятор [Ис... 4500
FreeSMS v1.3.1 3517
Случайные статьи
Процедура итерацио...
Обработка принимае...
Использование Visu...
Процедура ClearVie...
Создание отчетов (...
Помещение модулей ...
Structure too large
Новинка планшетов ...
SMB-подпись гарант...
«Вычитание» подстр...
Разработка ПО.
Этап тестирования
Процедура поиска п...
Корзины для элементов
Операторов typedef
всеми дочерними ОП
скриптов в нетради...
Именаучетных запис...
Playstation 2
Когда одного недос...
лесу Windows 2000
Введение в регуляр...
Открытие существую...
Интернет-магазины ...
Анализ общей линей...
Статистика



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


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