Мова програмування С ++
Бьярн Страустрап. Введення в мову Сі ++
наступні глави, полягає в тому, щоб надати програмісту
інструмент для створення нових типів, настільки ж зручних в обігу
наскільки і вбудовані типи. В ідеалі тип, визначений користувачем,
способом використання не повинен відрізнятися від вбудованих типів,
тільки способом створення.
Клас - це визначений користувачем тип. Цей розділ знайомить
з основними засобами визначення класу, створення об'єкту класу,
роботи з такими об'єктами і, нарешті, знищення таких об'єктів
після використання.
Тип є конкретне уявлення деякої концепції (поняття).
Наприклад, наявний в C ++ тип float з його операціями +, -, * і т.д.
забезпечує обмежену, але конкретну версію математичного
поняття дійсного числа. Новий тип створюється для того, щоб
дати спеціальне і конкретне визначення поняття, якому ніщо
прямо і очевидно серед вбудованих типів не відповідає. Наприклад, в
програмі, яка працює з телефоном, можна було б створити тип
trunk_module (елемент лінії), а в програмі обробки текстів - тип
list_of_paragraphs (список параграфів). Як правило, програму, в
якої створюються типи, добре відповідають поняттям додатки,
зрозуміти легше, ніж програму, в якій це не робиться. Хорощо
вибрані типи, визначені користувачем, роблять програму більш
чіткою і короткою. Це також дозволяє компілятору виявляти
неприпустимі використання об'єктів, які в іншому випадку
залишаться невиявленими до тестування програми.
У визначенні нового типу основна ідея - відокремити несуттєві
подробиці реалізації (наприклад, формат даних, які
використовуються для зберігання об'єкта типу) від тих якостей, які
істотні для його правильного використання (наприклад, повний
список функцій, які мають доступ до даних). Такий поділ
можна описати так, що робота зі структурою даних і внутрішніми
адміністративними подпрограммами здійснюється через спеціальний
інтерфейс (каналіруется).
Розглянемо реалізацію поняття дати з використанням struct для
того, щоб визначити уявлення дати date і безлічі функцій
для роботи зі змінними цього типу:
struct date {int month, day, year-} ;
// Дата: місяць, день, рік}
date today;
void set_date (date *, int, int, int) ;
void next_date (date *) ;
void print_date (date *) ;
// ...
Ну ось і кінець першої статті про мови програмування С ++. Надалі будуть і нові статті.