Оператор is
Визначення належності до класу і приведення типів об'єктів
При використанні поліморфізму нерідко треба визначити, посилання на об'єкт якого саме типу знаходиться в тій чи іншій змінній. Для вирішення завдань такого роду всі об'єкти містять інформацію про клас - так звану RTTI-інформацію (від англ. Run Time Type Information - інформація часу виконання про тип), для доступу до якої у всіх класах є методи, успадковані ними від класу TObject. Однак використання цих методів не рекомендується розробником, а замість них передбачений оператор is, що перевіряє приналежність об'єкта до заданого класу.
Оператор is повертає логічне значення (True або False) і використовується в наступному вигляді:
<Посилання на об'єкт> is <Назва класу>
Проіллюструємо використання оператора is на прикладі модуля (лістинг 5.17), що під’єднує до себе модуль р:. розроблений у попередньому прикладі. Реалізуємо процедуру, яка отримує як параметр посилання на екземпляр класу TGeomFigure, і визначає, чи не належить об'єкт, на який реально вказує посилання, до класу TLine. Якщо об'єкт є екземпляром класу TLine, то викличемо його метод Draw, в протилежному випадку процедура повинна завершитися.
![]() |