Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Приховування даних і доступність функцій
Як правило, приховуючи дані класу, його методи залишають доступними. Це пояснюється тим, що дані приховують з метою уникнути небажаного зовнішнього впливу на них, а функції, що працюють з цими даними, повинні забезпечувати взаємодію між даними і зовнішньою по відношенню до класу частиною програми. Тим не менше, не існує чіткого правила, яке б визначало, які класи слід описувати як private, а які – як public. Можемо зіткнутися з ситуацією, коли необхідно буде приховати функції і забезпечити вільний доступ до полів класу.
Методи класу всередині визначення класу Методи класу smallobj виконують дії, типові для методів класів взагалі: вони зчитують і присвоюють значення полям класу. Метод setdata() приймає аргумент і присвоює полю somedata значення, рівне значенню аргумента. Метод showdata() відображає на екрані значення поля somedata. Зверніть увагу, що функції setdata() і showdata() визначені всередині класу, тобто код функції міститься безпосередньо у визначенні класу. Тут визначення функції не означає, що код функції поміщається в пам’ять. Таке відбувається лише при створенні об’єкту класу. Можна вчинити так, як ми звичайно робили при вивченні Паскалю – оголосити функцію в означенні класу, а визначити її в іншому місці.
Використання класу Подивимося, як можна використати вже визначений клас в функції main(). Після оператора, який очищає вікно користувача (clrscr()) наступний оператор smallobj s 1, s 2; Цей оператор визначає два об’єкти s1 і s2 класу smallobj. При визначенні класу не створюються ніякі його об’єкти, тільки задається вигляд майбутнього об’єкта. Всі операції програма здійснює з об’єктами. Визначення об’єкта схоже на визначення змінної: воно означає виділення пам’яті, необхідної для збереження об’єкта. Виклик методів відбувається в такій самій формі, як у Паскалі s1.setdata(3066); s2.setdata(3776); s1.showdata(); s 2. showdata (); Для того, щоб дістати доступ до методу класу, необхідно використовувати операцію крапки (.), що зв’язує метод з іменем об’єкта. Ще цю операцію називають операцією доступу до методу класу. Оператор s 1. setdata (3066); викликає метод setdata об’єкта s1. Метод присвоює полю somedata значення 3066. Подібним способом оператор s2. setdata(3776); присвоює полю somedata об’єкта s2 значення 3776. Тепер у нас є два об’єкти з різними значеннями поля somedata.
Аналогічно, два виклики функції showdata() відобразять на екрані значення полів відповідних об’єктів. s1. showdata(); s2. showdata();
Повідомлення В деяких об’єктно-орієнтованих мовах програмування виклики методів об’єктів називають повідомленнями. Так, наприклад, виклик s1. showdata(); можна розглядати як посилання повідомлення об’єкту s1 з вказівкою вивести на екран свої дані. Термін повідомлення не входить до числа формальних термінів мови С++, але його корисно пам’ятати при подальшому обговоренні. Представлення виклику методів у вигляді повідомлень підкреслює незалежність об’єктів як самостійних одиниць, взаємодія з якими здійснюється шляхом звертання до їх методів.
Об’єкти програми і об’єкти реального світу Визначимо дещо складніший клас «Деталі виробу». Нехай до його складу входять поля даних: номер виробу, номер деталі. вартість деталі. Побудуємо також методи, які давали б змогу задавати дані і виводити дані на екран. Результат може бути таким: (програма 9.2) # include < iostream. h> # include < conio. h> #include <bios.h> Class part //визначення класу { private: Int modelnumber; //номер виробу Int partnumber; //номер деталі Float cost; // вартість деталі public: void setpart(int nm, int pn, float c) //метод задання даних {modelnumber=nm; partnumber=pn; cost=c; } Void showpart() //метод виводу даних {cout <<"Виріб " <<modelnumber; cout << " Деталь "<< partnumber; cout << " Вартість "<<cost << endl; } }; Int main() { clrscr();
|
|||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 54; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.135.219.166 (0.007 с.) |