русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Використання схожого синтаксису


Дата додавання: 2014-04-22; переглядів: 922.


Використовуйте перезавантажені операції так само, як основні. Наприклад, якщо alpha і beta – основного типу, то операція присвоювання у виразі

alpha+=beta;

виконує таку дію:

alpha=alpha+beta;

Будь-яка перезавантаена версія цієї операції повинна виконувати щось подібне. Вона, можливо, повинна виконувати дію

alpha=alpha+beta;

де + перезавантажений.

Якщо ви перезавантажуєте одну арифметичну операцію, можете для певності перезавантажити їх всі. Це допоможе уникнути плутанини.

Деякі синтаксичні характеристики операцій не можуть бути змінені. Не можна перезавантажити бінарну операцію в унарну і навпаки.

 

 

Показуйте обмеження

Пам’ятайте, що коли ви перезавантажили операцію, то будь-якій людині, не знайомій з вашим лістінгом, потрібно багато вивчити, щоб зрозуміти, що насправді означає вираз

a=b+c;

Якщо у вас дуже багато перезавантажених операцій і вони використовуються з інтуїтивно незрозумілою метою, то загубиться суть їх використання і читання дістінга стане складнішим, а не простішим. Використовуйте перезавантаження операцій дуже обережно, тілько у випадках, коли необхідність їх використання очевидна. Часто краще обійтися бібліотечними функціями, аніж самостійно перезавантажувати операції.

 

Уникайте невизначеності

Припустимо, що ви використовуєте і конструктор з одним аргументом, і операцію перетворення для здійснення деякого перетворення. Як компілятор дізнається, яке з цих перетворень виконувати? Ніяк. Компілятор не слід втягувати у ситуації, в яких йому невідомо, що робити, оскільки він видасть помилку. Тому уникайте виконання одного перетворення за допомогою кількох різних способів.

 

Не всі операції можуть бути перезавантажені

Не можуть бути перезавантаженими такі операції:

§ операція доступу до членів структури чи класу (.)

§ операція глобального дозволу (::)

§ операція умови (?:)

§ операція ->

 

Крім того, не можна створювати нові операції і намагатися їх перезавантажити, перезавантажувати можна лише існуючі операції

 

 


<== попередня лекція | наступна лекція ==>
Деякі рекомендації щодо перезавантаження операцій і перетворення типів. Коли які перетворення використовувати? | Підсумок


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн