Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператори динамічного виділення і звільнення пам’яті в мові С++




Класи С++. Специфікатори доступу. Оператори розкриття області видимості.

Подібно структурі, клас C++ повинен мати унікальне ім'я, за яким слідує відкриваюча фігурна дужка, один або декілька елементів і закриваюча фігурна дужка.

Клас можна визначити за допомогою конструкції

тип_класу им’я_класу {компоненти класу};

· тип класу – одно з службових слів class, struct, union;

· ім’я_класу – ідентифікатор (задається користувачем);

· компоненти класу – визначення і об’явлення даних, що належать класу функцій.

Функція, що є компонентом класу, називається методом класу або функцією-членом. Дозволяється визначати клас:

- з полями і методами

- тільки з полями

- тільки з методами

- без полів і без методів.

Клас без полів і без методів називається порожнім класом. Елементи класу типу struct за умовчанням відкриті і доступні для інших частин програми. Члени класу class за умовчанням закриті і недоступні поза даним класом. Доступ до вмісту класу задається специфікаторами доступу, які позначаються public: і private:

public: - об’явлення елемента класу, до якого мають доступ поза класом;

private: - закриває доступ до елементу класу зовні.

Відкрита частина класу називається інтерфейсом. Заховання інформації про внутрішню структуру – це один з принципів об'єктно-орієнтованого програмування, так звана інкапсуляція.

 

protected -Захищений розділ

Ключове слово public позначає розділ, у якому розміщаються функції і дані, доступні з будь-якої точки програми, відкриті члени. Ключове слово private оголошує розділ, у якому розташовані закриті члени класу, що є доступними лише функціям-членам самого класу, а також дружнім функціям і класам. Зверніть увагу на те, що функції-члени можуть знаходитися в ніби безіменному розділі. Насправді, за замовчуванням функції і дані, оголошені в такому розділі, є закритими. Зміст специфікатора protected буде розкритий пізніше при описі спадкування класів.

Мова C++ містить два оператори – new і delete, які виконують функції з виділення та звільнення пам'яті. Їх загальний формат має такий вигляд:

змінна-покажчик = new тип_змінної;

delete змінна-покажчик;

У цьому записі елемент змінна-покажчик є покажчиком на значення, тип якого задано елементом тип_змінної. Оператор new виділяє область пам'яті, достатню для зберігання значення заданого типу, і повертає покажчик

на цю область пам'яті. За допомогою оператора new можна виділити пам'ять для значень будь-якого допустимого типу.

Оператор new дає змогу динамічно виділити область пам'яті. Оператор delete звільняє область пам'яті, яка адресується заданим покажчиком. Після звільнення ця пам'ять може бути знову виділена для інших потреб під час подальшого new -запиту на виділення області пам'яті. Оператор delete звільняє раніше виділену динамічну пам'ять.




Поделиться с друзьями:


Дата добавления: 2015-05-23; Просмотров: 859; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.