Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_ робота_5-6_1213.doc
Скачиваний:
8
Добавлен:
23.03.2015
Размер:
104.96 Кб
Скачать

9

Лабораторна робота №5-6 з ООП

Лабораторна робота № 5-6.

Тема роботи: проектування функцій-членів класу, призначених для встановлення та отримання значень полів (приховування інформації), використання конструктору за замовчуванням і деструктору.

Мета роботи: спроектувати, відлагодити та протестувати розроблені функції-члени класу, використати розроблені методи для роботи з об’єктами класу.

Інкапсуляція та приховування інформації об'єкту

Термін інкапсуляція тлумачиться в ООП в двох значеннях.

З одного боку, це розміщення даних і функцій, які обробляють ці дані, в межах одного класу.

З другого боку, під інкапсуляцією розуміється приховування (утаєння) даних об'єкту від інших частин програми з метою забезпечення доступу до них тільки за допомогою методів класу. Таким чином, доступ до даних об'єкту забезпечується за допомогою двох методів: методу установки значення даного, який ще називається методом запису даного, та методу отримання значення даного, який ще називається методом читання даного.

Порядок виконання роботи. Частина і.

Проектування та створення класу.

1. Запустити Microsoft Visual C++ (MVC++).

2. Відкрити простий проект, для цього

А) Обрати пункт меню File New. У вікні, що відкрилося, повинна бути відкрита сторінка Projects.

Б) Обрати тип проекту, що створюється: Win32 Console Application (Консольний додаток Win32).

В) У полі Project name вказати назву проекту: Lab5_6, у полі Location вказати місце розташування проекту: D:\Student\Gr_nn\FIO. Натиснути OK.

Г) У вікні, що відкрилося, обрати тип консольного додатку A simple Application.

3. Натиснути Finish.

4. На лівій панелі браузера, який представляє дерево проекту, обрати вкладку FileView, відкрити файл Lab5_6.cpp, який має наступний вигляд:

// Lab5_6.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

int main(int argc, char* argv[])

{

return 0;

}

Створимо новий клас, який описуватиме книгу і буде мати конструктори та деструктор для створення та знищення об’єктів цього класу а також методи для роботи з полями об’єктів.

Для цього потрібно виконати наступні дії.

  1. Перейти на вкладку ClassView браузера, клацнути мишею на кореневому вузлі дерева класів проекту, натиснути праву клавішу миші і у контекстному меню обрати пункт New Class. В полі Name вікна, що з’явиться, ввести назву нового класу — CBook.

  2. Перейти на вкладку браузера FileView, де представлено дерево проекту, та звернути увагу, що в папці Source Files крім файлу Lab5_6.cpp, для класу CBook одразу створився новий файл Book.cpp, який містить визначення (определение) класу а в папці Header Files створився новий заголовний файл Book.h, який включає опис (описание) класу. Далі треба натиснути на кнопку OK, перейти на вкладку FileView, та переглянути у редакторі файлів ці створені файли.

  1. Потрібно вибрати заголовний файл Book.h та внести в нього опис методів, призначених для роботи з полями класу.

Файл специфікації Book.h містить оголошення типу класу CBook. Щоб компілятор включав оголошення типу тільки один раз при трансляції програми, використається директива препроцесора #pragma once.

У класі оголошені закриті дані з типом масиву m_author, покажчика на символьний тип m_pTіtle і цілого m_year, які описують автора, назву й рік видання, відповідно. Тип CBook повідомляє компіляторові, що для створення об'єкта типу CBook буде потрібно 50 байтів для зберігання автора, 4 байти для адреси, по якому буде записана назва книги, і 4 байти для зберігання року видання.

Щоб можна було змінювати значення даних в об'єктів класу й одержувати їхні значення в програмі, у класі оголошені відкриті методи. Функції-члени, призначені для встановлення значень полів класу, мають параметр, тип якого відповідає типу даного, та тип значення voіd, що повертається. Методи для повернення значень не мають потреби в параметрах, оскільки змінні, значення яких вони повертають, відомі класу. Тип кожного методу обумовлений типом змінної, що повертається.

Конструктор за замовчанням та деструктор вже присутні в специфікації класа CBook. Це

public:

CBook ();

virtual ~ CBook ();

Конструктор за замовчуванням - конструктор, що не вимагає параметрів. Цей конструктор завжди повинен бути визначений для будь-якого класу. Конструктор за замовчуванням може не виконувати ніяких дій, але найчастіше він ініціалізує дані класу нульовими значеннями.

Деструктор (destructor) - спеціальний метод класу, використовуваний для руйнування об'єктів класу. Ім'я деструктора збігається з ім'ям конструктора (ім'ям класу), якому передує символ тильда ~. Він завжди має відкритий специфікатор доступу й не має ні типу, ні параметрів, деструктор управляє знищенням об'єкта з оперативної пам'яті.

Викликається деструктор автоматично при руйнуванні об'єкта. Якщо об'єкт створювався динамічно через покажчик за допомогою оператора new, то для знищення такого об'єкта варто використати оператор delete для покажчика.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]