Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 106; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.248 (0.008 с.) |