Програмування С, С++теорія та практика (частина 2)
2.5.3 Використання специфікаторів доступу класу
Головною турботою класу є необхідність приховувати якомога більше інформації, аби захистити його зміст від можливого стороннього впливу. Це накладає ряд обмежень на використання даних. Тому ознакою пристойного стилю програмування на Сі+ + вважається правильне застосування специфікаторів доступу до елементів-даних та елементів-функцій класу. Таблиця описує призначення специфікаторів доступу:
|
Таблиця 2.1. Специфікатори доступу
|
Кожний з користувачів класу (сам клас, його представники або ж похідні класи) володіє різними привілеями доступу, що визначається відповідним ключовим словом (див. таблицю специфікаторів доступу). Розділи з різними привілеями доступу можуть з’являтися у будь-якому порядку та у будь-якій кількості. Якщо усі елементи-дані та елементи- функції класу оголосити приватними (ргіуаіе), то з таким класом ніяких операцій проводити неможливо: уся інформація з протоколу класу буде прихованою. Та навпаки, до всього, що оголошено у секції риЬііс, дозволений необмежений доступ. Щодо специфікатору ргоіееіей, елементи-дані стають доступними у похідному класі через прихований по замовчуванню покажчик ікіз :
с1азз Опе {
рго'Ьес'Ьей: іп£ а;
};
с1азз Тмо : риЬ1іс Опе {
// визначення похідного класу риЬ1іс:
VОій ехатр1е()
{
а=0; // означає £Ьіз->а=0
}
};
Якщо функція-елемент прийматиме як параметр покажчик або посилання на інший об’єкт, правило дещо змінюється: неможливо звертатися до ргоґесґесі - даних через зовнішнього користувача класу Опе:
с1азз Опе {
рго'Ьес'Ьей: іп£ а;
};
с1азз Тмо : риЬ1іс Опе {
риЬ1іс:
VОій ехатр1е(Опе &А)
{
а=0; // означає £Ьіз->а=0
А.а=0; // помилка доступу
}
};
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
