Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Перераховуваний тип






Перераховуваний тип (enum) застосовується для даних цілого типу, що можуть приймати обмежений набір значень. Кожному значенню відповідає власне ім'я-ідентифікатор і ціле число, значення цього імені. Оголошення перераховуваного типу будується за схемою:

enum ідентифікатор_типу { список перерахування } декларатори­ініціалізатори;

Тут ідентифікатор_типу задає ім'я перераховуваного типу, список перерахування складається з імен, розділених комами. Кожне ім’я задається ідентифікатором_значення і, можливо, цілим значенням типу char чи int, наприклад:

enum color { RED, GREEN, BLUE } en_color;
enum lex_type { CNST, VAR, OPER=3, FUNC };

Якщо значення ідентифікатора_значення у списку перерахування не задано, перший з них отримую значення 0, а кожен наступний - значення, більше на 1. Узагалі будь-який з ідентифікаторів_значень за замовчуванням має значення на 1 більше попереднього. У С/С++ прийнято записувати ці ідентифікатори великими літерами. Ідентифікатори_значення використовуються або як іменовані константи, або для присвоювання змінним перераховуваного типу.

Існує тип void, який не містить жодного значення (порожній).

 

28. Протокол опису класу об’єктів у мові С++: інтерфейс та реалізація.

У програмуванні існує поняття програмного інтерфейсу, що означає перелік можливих обчислень, які може виконати та чи інша частина програми, включаючи опис того, які аргументи і в якому порядку потрібно передавати на вхід алгоритмам з цього переліку, а також що і в якому вигляді вони будуть повертати. Абстрактний тип даних інтерфейс придуманий для формалізованого опису такого переліку. Самі алгоритми, тобто дійсний програмний код, який буде виконувати всі ці обчислення, інтерфейсом не задається, програмується окремо і називається реалізацією інтерфейсу.

Програмні інтерфейси, а також класи, можуть розширюватися шляхом успадкування, яке є одним з важливих засобів повторного використання готового коду в ООП. Успадкованих клас або інтерфейс буде містити в собі все, що зазначено для всіх його батьківських класів (залежно від мови програмування і платформи, їх може бути від нуля до нескінченності). Наприклад, можна створити свій варіант текстової рядки шляхом успадкування класу " моя рядок тексту" від вже існуючого класу " рядок тексту", при цьому передбачається, що програмісту не доведеться заново переписувати алгоритми пошуку та інше, тому що вони автоматично будуть успадковані від готового класу, і будь-який екземпляр класу " моя рядок тексту" може бути переданий не тільки в готові методи батьківського класу " рядок тексту" для проведення потрібних обчислень, а й взагалі в будь-який алгоритм, здатний працювати з об'єктами типу " рядок тексту", оскільки примірники обох класів сумісні з програмним інтерфейсам.

Клас дозволяє задати не тільки програмний інтерфейс до самого себе і до своїх екземплярів, а й в явному вигляді написати код, відповідальний за обчислення. Якщо при створенні свого нового типу даних успадковувати інтерфейс, то ми отримаємо можливість передавати примірник свого типу даних в будь-який алгоритм, який вміє працювати з цим інтерфейсом. Однак нам доведеться самим написати реалізацію інтерфейсу, тобто ті алгоритми, якими буде користуватися цікавить нас алгоритм для проведення обчислень з використанням нашого екземпляра. У той же час, наслідуючи клас, ми автоматично успадковуємо готовий код під інтерфейс (це не завжди так, батьківський клас може вимагати реалізації якихось алгоритмів в дочірньому класі в обов'язковому порядку). У цій можливості успадковувати готовий код і проявляється те, що в об'єктно-орієнтованої програми тип даних клас визначає одночасно і інтерфейс, і реалізацію для всіх своїх екземплярів.

 

29. Протокол опису функцій у мові С++: інтерфейс та реалізація.

У C++ прості частини складної програми реалізуються за допомогою функцій. В термінології ООП функції – це методи, за допомогою яких об’єкти опрацьовують повідомлення. Окремі функції об'єднують у спільну програму. У відкомпільованому вигляді така програма утворює модуль. Головна функція, що обов'язково входить до кожної програми, - main(). Розрізняють стандартні функції та функції користувача. Стандартні функції мови описані (визначені) у бібліотеках.

Функція – це поіменована послідовність описів і операторів, які виконують деякі логічно завершені дії. До функції можна звертатись (викликати) з будь-якого місця програми необхід­ну кількість разів. Функція може отримувати дані через параметри і повертати їх через ім’я.

Кожна функція повинна бути оголошена і означена.

 

2. Синтаксис функції.

[клас пам’яті] < тип ф-ї> < ім’я ф-ї> (< список формальних параметрів>)

{

< тіло функції>;

return (< змінна>); }

Клас пам’яті - задає область видимості функції. Extern – глобальна видимість у всіх модулях програми. Static – видимість в межах модуля, де означена функція.

Тип ф-ї – це тип даного, який функція повертає в основну програму. Тип функції можна не зазначати. За замовчуванням функція повертає у програму дане цілого типу int. Функцію, яка не повертає у програму жодного результату, оголошують з типом void.

Для функції, яка не залежить від жодних параметрів, у круглих дужках записують службове слово void.

Ім’я функції задає користувач за правилом створення ідентифікаторів.

У списку формальних параметрів через кому записують змінні, зазначаючи їхні типи. Тип необхідно зазначати для кожної змінної окремо. Імена змінних можна опускати. Якщо функція не набуває жодних значень, то список формальних параметрів може бути відсутній. Круглі дужки опускати не можна. Параметри: під час опису – формальні, під час виклику – фактичні.

У тілі функції записують команди, які задають дію функції. Результат виконання функції повертається в основну програму (у точку виклику) за допомогою змінної командою return. Тип змінної має збігатися з типом функції. У тілі функцій типу void команду return не зазначають. У команді return круглі дужки можна не писати.

 


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.007 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал