Структури

 

Дуже близьким родичем ключового слова class є ключове слово struct, яке використовується для оголошення структури. У мові C++ структура - це той же клас, але з відкритими за умовчанням членами. Структуру можна оголосити подібно до того, як оголошується клас, наділивши її такими ж змінними-членами і функціями. І справді, якщо сповідувати хороший стиль програмування і завжди в явному виді оголошувати відкриті і закриті розділи класу, то ніяких відмінностей не повинно бути.

Спробуємо повторно ввести вміст лістингу 6.8 з урахуванням наступних змін:

- в рядку 3 замінимо оголошення class Point оголошенням struct Point;

- в рядку 17 замінимо оголошення class Rectangle оголошенням struct Rectangle.

Тепер знову запустимо нашу програму і порівняємо результати. При цьому ніякої різниці ви помітити не повинні.

Чому два ключові слова несуть однакове смислове навантаження

Ви, ймовірно, здивовані тим, що два різні ключові слова створюють практично ідентичні оголошення. Так склалося історично. Мова C++ будувалася як розширення С. В мові З були структури, але ці структури не мали методів класу. Творець C++, Бьерн Страуструп, спирався на структури, але замінив ім'я типу даних struct типом class, щоб тим самим заявити про нові розширені функціональні можливості цієї нової освіти.

Рекомендуется:Используйте специфікатор const скрізь, де це можливо. Переконаєтеся, що вам повністю зрозумілі класи, перш ніж переходити до наступного заняття.

Поміщайте оголошення класу у файл з розширенням .hpp, а його виконання - у файл з розширенням .cpp.

Ключові слова C++

Ключові слова зарезервовані в компіляторі як елементи мови програмування. Ці ключові слова не можна використовувати як імена при визначенні класів, змінних або функцій. Приведений список не можна назвати абсолютно строгим, оскільки деякі ключові слова залежать від конкретного компілятора. Тому список ключових слів вашого компілятора може бути небагато іншим.

auto, break, case, catch, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friend, goto, if, int, long, mutable, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, throw, typedef, union, unsigned, virtual, void, volatile, while