Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






Де оголошувати та розміщувати реалізацію методів?

Кожна функція, що об’явлена у класі має бути визначена. Визначення функції називається також реалізацією. Реалізація функцій або методів класу має заголовок та тіло. Реалізація функції має знаходитись у файлі, який є досяжним для компілятора. Це є файли з розширенням .c або .cpp

Оголошення класів можна розмістити в один файл з програмою, але це не є гарним тоном. Прийнято розміщати оголошення в файл заголовка, ім’я якого переважно співпадає з іменем файлу програми та має розширення .hpp (.h, .hp). Наприклад, можна розмістити оголошення класу Cat у файл Cat.hpp, а реалізацію методів класу – у файл Cat.cpp. Файл заголовка необхідно включити у файл коду. Для цього у файлі Cat.cpp перед початком програмного коду використовується директива

#include “Cat.hpp”

Це є повідомлення для компілятора внести вмістиме файлу Cat.hpp в певне місце програми. Клієнта класу переважно не дуже хвилюють подробиці реалізації класу. Не виключено, що файл заголовка (.hpp) вдасться застосувати не в одному, а в декількох файлах програми.

Таким чином, файл заголовка – це файл з розширенням .hpp, де розміщене оголошення класу з переліком його змінних-членів та функцій-членів або методів.

Вбудована реалізація

Методи класу можна зробити вбудованими. Для цього перед типом значення що повертається необхідно розмістити ключове слово inline . Наприклад,

іnline int Cat : : GetWeight ( )

{

return itsWeight;

}

Реалізацію методу можна помістити при об’яві класу, що зробить таку функцію вбудованою автоматично. Наприклад,

class Cat

{

public:

int GetWeight ( ) const { return itsWeight; }

void SetWeight (int aWeight);

private:

int itsWeight;

};

Тіло вбудованої функції починається одразу після оголошення і береться у фігурні дужки.

Структури

Дуже близьким родичем ключового слова class є слово struct, яке використовується для оголошення структури. В мові С++ структура це є клас, всі члени якого по замовчуванню є відкритими (public). Структуру можна оголосити так само як клас з переліком змінних-членів та методів. Так чому два різних ключових слова виконують однакові дії? Так склалось історично. Коли розроблялась мова С++, за основу була взята мова С, яка включала структури. Але ці структури не мали методів. Якщо взяти будь-яку програму на мові С++ і замінити в ній слово class на слово struct, то ніякої різниці в результатах ви не побачите.

Лекція 5




Переглядів: 335

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

 

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.