|
Зміст |
Теоретичні відомості.................................................................................................. |
2 |
Термінологія................................................................................................................ |
2 |
Типові конструкції мови............................................................................................ |
2 |
Оголошення класу....................................................................................................... |
2 |
Конструктор................................................................................................................. |
2 |
Деструктор................................................................................................................... |
3 |
Створення об’єкту....................................................................................................... |
3 |
Виділення файлів для класу....................................................................................... |
4 |
SmsMessage.cpp........................................................................................................... |
5 |
Завдання на лабораторну роботу............................................................................... |
6 |
Індивідуальне завдання.............................................................................................. |
6 |
Література.................................................................................................................... |
8 |
Тема. Статичні та динамічні класи.
Мета: навчитись створювати та видаляти об’єкти. Отримати навики при виділенні та звільненні пам’яті.
Теоретичні відомості Термінологія
Атрибут класу— поле даних класу. Синоніми: поле класу Метод класу — функція, що використовується для реалізації поведінки
класу.
Клас — синтаксична конструкція мови, котра показує компілятору комплексний тип даних
Конструктор — це метод, який викликається під час створення об’єкту. Об’єкт — змінна типу «клас» Завчасне оголошення — прототиповане оголошення класу.
Оголошення класу — синтаксична конструкція мови, що використовується для визначення методів та атрибутів класу. Зазвичай приводиться у .h-файлі
Реалізація класу — набір синтаксичних конструкцій виконання певних дій методами класу. Зазвичай приводиться у .cpp-файлі.
Типові конструкції мови
Оголошення класу
Завчасне оголошення використовується для декларування декількох класів, що мають бути приведені у одному файлі і використовують один
одного. Приклад завчасного оголошення наведено нижче.
class CSmsMessage; class CExperience
{
public:
CSmsMessage iMessage;
};
Для повного оголошення класу використовується наступний фрагмент
коду на С++:
class CSmsMessage
{
};
Конструктор
При створенні об’єкту класу часто буває корисним виконати певні дії. Для цих цілей використовується спеціальний метод: конструктор. Конструктор має однакове ім’я із класом. Конструктор може мати вхідні аргументи, але не повертає вихідного значення як звичайна функція.
Нижче наведено оголошення класу із трьома конструкторами:
1.аргумент конструктора не використовується;
2.визначається аргумент для конструктора;
3.конструктор копіювання.
class CSmsMessage
{
public:
/** * Конструктор без параметра */
void CSmsMessage(void);
/**
*Конструктор із параметром
*@param aTextLength Задає довжину тексту
*/
void CSmsMessage(int aTextLength);
/**
*Конструктор копіювання
*@param aSmsMessage Вихідний об єкт із даними для копіювання
*/
void CSmsMessage(const CSmsMessage& aSmsMessage);
private:
// довжина тексту int iTextLength;
};
Деструктор
Для видалення всіх ресурсів, зайнятих об’єктом використовується спеціальний метод: деструктор. Деструктор не може мати вхідних параметрів та повинен називатись таким же іменем як і клас.
Для оголошення класу із деструктором використовується наступна
конструкція:
class CSmsMessage
{
public /**
* Деструктор */
~CSmsMessage(); // деструктор
};
Створення об’єкту
Після оголошення класу потрібно використати цей клас у вашій програмі. Використати клас можливо, коли ви створюєте об’єкт цього класу:
Нижче наведене статичне створення об’єкту smsMessage.
void main(void)
{
CSmsMessage smsMessage;
}
Наступна програма використовує динамічне створення об’єкту smsMessage. Доречно зазначити, що необхідним є виділення та звільнення пам’яті, що була виділена.