сть мови програмування С + + від С полягає в тому, що в С нету класів, а отже мова С не підтримує ООП, на відміну від С + +.
Щоб зрозуміти, для чого ж насправді потрібні класи, проведемо аналогію з яким-небудь об'єктом з повсякденного життя, наприклад, з велосипедом. Велосипед - це об'єкт, який був побудований згідно з кресленнями. Так от, ці самі креслення грають роль класів в ООП. Таким чином класи - це деякі описи, схеми, креслення по яких створюються об'єкти. Тепер ясно, що для створення об'єкта в ООП необхідно спочатку скласти креслення, тобто класи. Класи мають свої функції, які називаються методами класу. Пересування велосипеда здійснюється за рахунок обертання педалей, якщо розглядати велосипед з точки зору ООП, то механізм обертання педалей - це метод класу. Кожен велосипед має свій колір, вага, різні складові - все це властивості. Причому у кожного створеного об'єкта властивості можуть відрізнятися. Маючи один клас, можна створити необмежено кількість об'єктів (велосипедів), кожен з яких буде володіти однаковим набором методів, при цьому можна не замислюватися про внутрішню реалізації механізму обертання педалей, коліс, спрацьовування системи гальмування, так як все це вже буде визначено в класі. Розібравшись з призначенням класу, дамо йому грамотне визначення.
Класи в С + + - це абстракція описує методи, властивості, ще не існуючих об'єктів. Об'єкти - конкретне уявлення абстракції, що має свої властивості та методи. Створені об'єкти на основі одного класу називаються екземплярами цього класу. Ці об'єкти можуть мати різну поведінку, властивості, але все одно будуть об'єктами одного класу. У ООП існує три основних принципи побудови класів:
1. Інкапсуляція - це властивість, що дозволяє об'єднати в класі і дані, і методи, що працюють з ними і приховати деталі реалізації від користувача.
2. Спадкування - це властивість, що дозволяє створити новий клас-нащадок на основі вже існуючого, при цьому всі характеристики класу батька присвоюються класу-нащадку.
3. Поліморфізм - властивість класів, що дозволяє використовувати об'єкти класів з однаковим інтерфейсом без інформації про тип і внутрішній структурі об'єкта.
А тепер повернемося до класів, для початку розглянемо структуру оголошення класів.
1 2 3 4 5 6 7 8 9 10 / / оголошення класів в С + + class / * ім'я класу * / {private: / * список властивостей і методів для використання усередині класу * / public:/* список методів доступних іншим функцій та об'єктам програми * / protected: / * список засобів, доступних при спадкуванні * /};
Оголошення класу починається з зарезервованого ключового слова class , після якого пишеться ім'я класу. У фігурних дужках, рядки 3 - 10 оголошується тіло класу, причому після закривається скобочки обов'язково потрібно ставити крапку з комою, рядок 10 . У тілі класу оголошуються три мітки специфікації доступу, рядка 4, 6, 8, після кожної мітки потрібно обов'язково ставити двокрапку. У рядку 4 оголошена мітка специфікатора доступу private. Всі методи і властивості класу,...