Оператор using

Оператор using в C + + прибирає необхідність вживати імя області namespace в даному блоці коду Наприклад, якщо у вас є кілька класів, визначених у області namespace std, то вираз

using namespace std

дозволяє вам звертатися до будь-якого класу в цій області без вказівки модифікатора std :: Однак така зміна відібється також на всіх інших класах і областях namespace в системі Припустимо, що в нашому минулому прикладі областей fred і george ви б написали:

using namespace fred using namespace george

int func(void)

{

A anAObject

}

Що в даному випадку означає A у функції func Це з області fred або з області george Ми і самі цього не знаємо, а вже компілятор і поготів Ситуація ще більш ускладниться, якщо клас A описаний поза всяких областей namespace Уявіть, що ви написали свій власний клас list, який робить що-небудь зовсім інше, ніж клас list з STL Тоді, якщо використовувати вираження using для області namespace std, то безпосередньо до класу list звернутися буде неможливо Вам доведеться як і раніше використовувати оператор дозволу видимості (scope operator, ::), так що весь сенс областей namespace в даному випадку загубиться Так що я раджу вам закусити вудила і використовувати оператор дозволу видимості std :: для використання класів STL у вашому додатку був придуманий не для нових розробок, а скоріше для підтримки вже існуючого коду, що працює з заголовками, які пізніше були поміщені в область namespace Якщо у вас є програма, написана пару років тому і що використовує STL, то ви можете вирішити проблему з областю namespace std за допомогою оператора using У нових розробках, проте, вам варто завжди використовувати оператор std :: для доступу до ваших класам в області namespace std

А тепер ми повернемося до нашої дискусії про класи STL

Джерело: Теллес М – Borland C + + Builder Бібліотека програміста – 1998

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*