Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ (namespaces) Π² C++

Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. Prostranstva imen namespaces v C. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами Ρ„ΠΎΡ‚ΠΎ. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами-Prostranstva imen namespaces v C. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Prostranstva imen namespaces v C

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ Π² C ++ β€” это обобщСнная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Π•Π³ΠΎ объявлСниС начинаСтся с Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ слова namespace, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт имя ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ программиста, Π° Π·Π°Ρ‚Π΅ΠΌ Π±Π»ΠΎΠΊ Π² Ρ„ΠΈΠ³ΡƒΡ€Π½Ρ‹Ρ… скобках. Π‘Π»ΠΎΠΊ содСрТит Π±Π°Π·ΠΎΠ²Ρ‹Π΅ объявлСния ΠΈ / ΠΈΠ»ΠΈ опрСдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сущностСй C ++.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° скалярных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² глобальной области Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

int varId = 5 ;
float varId = 2.3 ;

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ошибкС компиляции. Π•ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ varId. Π₯отя это Π΄Π²Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ², int ΠΈ float, компилятор отклоняСт Π΄Π²Π° объявлСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ имя. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, объявляя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π² Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… областях:

namespace NA
<
int varId = 5 ;
>

namespace NB
<
float varId = 2.3 ;
>

int main ( )
<
cout NA :: varId β€˜ \n β€˜ ;
cout NB :: varId β€˜ \n β€˜ ;

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ рассматриваСтся основная концСпция пространства ΠΈΠΌΠ΅Π½ ΠΈ Π΅Π³ΠΎ использованиС Π² языкС программирования C ++. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ знания языка C ++. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия C ++, хотя ΠΎΠ½Π° ΠΊΡ€Π°Ρ‚ΠΊΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ области дСйствия C ++, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ„Ρ€Π°Π·Ρƒ Β«ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Π² C ++Β» (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ) Π² ΠΏΠΎΠ»Π΅ поиска любой Π²Π΅Π±-страницы linuxhint.com ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Enter. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ вас ΠΊ ΡΡ‚Π°Ρ‚ΡŒΠ΅, написанной этим Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½?

ДСкларативная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ β€” это самая большая Ρ‡Π°ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ допустимо имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ). Π­Ρ‚Π° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ называСтся ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ дСйствия. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ Π² C ++ β€” это обобщСнная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, основной Ρ†Π΅Π»ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ являСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΠ΅Π½. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΈΠΌΠ΅Π΅Ρ‚ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ объявлСния ΠΈ / ΠΈΠ»ΠΈ опрСдСлСния сущностСй.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ ΠΈ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ β€” это глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

int ident = 55 ;
float ident = 12.17 ;

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠ±Π΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ. Π­Ρ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ находятся Π² глобальной области видимости; Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΠ½ΠΈ находятся Π² глобальном пространствС ΠΈΠΌΠ΅Π½. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ ошибкой. Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, поэтому сущСствуСт Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² настраиваСмом пространствС ΠΈΠΌΠ΅Π½.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½

namespace NA
<
int varInt = 6 ;
float flt ;
>

namespace NB
<
int varInt = 7 ;
float flt ;
>

int main ( )
<
cout NA :: varInt β€˜ \n β€˜ ;
cout NB :: varInt β€˜ \n β€˜ ;
NA :: flt = 2.5 ;
NB :: flt = 4.8 ;
cout NA :: flt β€˜ \n β€˜ ;
cout NB :: flt β€˜ \n β€˜ ;

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π° NA :: flt ΠΈ NB :: flt Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main (). C ++ Π½Π΅ допускаСт Ρ‚Π°ΠΊΠΎΠ³ΠΎ опрСдСлСния Π² глобальной области видимости.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ настраиваСмоС пространство ΠΈΠΌΠ΅Π½ являСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½ для глобального пространства ΠΈΠΌΠ΅Π½.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° использования

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ всС врСмя Β«namepace :: nameΒ» вмСсто просто Β«nameΒ» послС объявлСния пространства ΠΈΠΌΠ΅Π½, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using. Бинтаксис использования Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ Π½Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° прСпроцСссора, поэтому ΠΎΠ½Π° заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой (;).

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ использованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using ΠΈ Π΄Ρ€.:

namespace NB
<
int varInt = 7 ;
int func ( )
<
return varInt ;
>
>

int fn ( )
<
using namespace NB ;
int myVar2 = func ( ) ;
//other objects and functions from NB follow.
return myVar2 ;
>

int myVar3 = NB :: func ( ) ;

int main ( )
<
cout fn ( ) β€˜ β€˜ myVar3 β€˜ \n β€˜ ;

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ, объявлСнная Π² глобальной области (глобальном пространствС ΠΈΠΌΠ΅Π½), просматриваСтся ΠΎΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ объявлСния Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΈΠ΄Π½ΠΎ Π²ΠΎ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… пространствах ΠΈΠΌΠ΅Π½ (Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… областях), Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ влоТСнная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn () Π²Ρ‹ΡˆΠ΅. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ соСдиняСт Π΅Π³ΠΎ пространство ΠΈΠΌΠ΅Π½ ΠΈΠ· ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΊΠΎΠ½Ρ†Π΅ области, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½.

Имя func () ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ NB нСльзя ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ fn (), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Β» using namespace NB;Β» Π±Ρ‹Π» ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ дСйствия Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π±Π»ΠΎΠΊ). ΠŸΡ€ΠΈ этом условии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Β» func () Β» Π²Π½Π΅ Π±Π»ΠΎΠΊΠ° (области) пространства ΠΈΠΌΠ΅Π½ NB, Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Β» NB :: Β«, ΠΊΠ°ΠΊ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ присоСдиняСтся своим пространством ΠΈΠΌΠ΅Π½ с внСшним Π³Π½Π΅Π·Π΄ΠΎΠ²Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΈΠ· полоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ находится Π½Π° ΠΊΠΎΠ½Π΅Ρ† Π²Π½Π΅ΡˆΠ½ΠΈΡ… влоТСнности ΠΈΠΌΠ΅Π½. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ пространство ΠΈΠΌΠ΅Π½ NA объСдинСно с Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½. Оба пространства ΠΈΠΌΠ΅Π½ Π·Π°Ρ‚Π΅ΠΌ Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ΡΡ Π² пространство ΠΈΠΌΠ΅Π½ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn (), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ с пространством ΠΈΠΌΠ΅Π½ NB. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ NB заканчиваСтся Π² ΠΊΠΎΠ½Ρ†Π΅ опрСдСлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn (), Π° Π΄Π²Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… пространства ΠΈΠΌΠ΅Π½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ΡΡ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° (считывания ΠΊΠΎΠ΄Π°).

namespace NA
<
int varInt = 6 ;
int func ( )
<
return varInt ;
>

namespace NB
<
int varInt = 7 ;
int func ( )
<
return varInt ;
>
>

using namespace NA ;
int myVar0 = varInt ;
//other objects and functions from :: and NB follow.

int fn ( )
<
int myVar1 = varInt ;
using namespace NB ;
int myVar2 = NB :: func ( ) ;
//other objects and functions from NB follow, till end of this scope.
return myVar1 + myVar2 ;
>

//Only objects and functions from :: and NB follow.

int myVar3 = NB :: func ( ) ;

int main ( )
<
cout myVar0 β€˜ β€˜ fn ( ) β€˜ β€˜ myVar3 β€˜ \n β€˜ ;

На Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 6, 13, 7.

Под ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Β» using namespace NA; Β«ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· глобального пространства ΠΈΠΌΠ΅Π½ ΠΈ пространства ΠΈΠΌΠ΅Π½ NA ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±Π΅Π· указания ΠΈΡ… исходного пространства ΠΈΠΌΠ΅Π½. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ varInt пространства ΠΈΠΌΠ΅Π½ NA. ΠžΠ±Π»Π°ΡΡ‚ΡŒ объСдинСнного пространства ΠΈΠΌΠ΅Π½ global ΠΈ NA простираСтся Π² пространство ΠΈΠΌΠ΅Π½ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn (). Π˜Ρ‚Π°ΠΊ, varInt ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² области видимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ fn () относится ΠΊ пространству ΠΈΠΌΠ΅Π½ NA.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ для глобального пространства ΠΈΠΌΠ΅Π½ ΠΈ пространства ΠΈΠΌΠ΅Π½ NA распространяСтся Π½Π° всю ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости fn (), послС Β» int myVar2 = NB :: func ();, Β«Π›ΡŽΠ±ΠΎΠ΅ имя ΠΈΠ· пространства ΠΈΠΌΠ΅Π½ NB ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² области fn () Π±Π΅Π· ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΅ΠΌΡƒΒ» NB :: Β«, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли ΠΎΠ½ΠΎ Π½Π΅ встрСчаСтся Π² NA ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… пространствах ΠΈΠΌΠ΅Π½ (Π±Π»ΠΎΠΊΠ°Ρ…). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π΅ΠΌΡƒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Β» NB :: Β«. ΠžΠ±Π»Π°ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½ для NA ΠΈ global продолТаСтся Π½ΠΈΠΆΠ΅ опрСдСлСния fn () ΠΈ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ main () Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ пространства ΠΈΠΌΠ΅Π½ NB начинаСтся с Β» int myVar2 = NB :: func (); Β«Π’ Π±Π»ΠΎΠΊΠ΅ fn () ΠΈ заканчиваСтся Π² ΠΊΠΎΠ½Ρ†Π΅ Π±Π»ΠΎΠΊΠ° опрСдСлСния fn ().

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½, Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… пространств ΠΈΠΌΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это всС Ρ€Π°Π²Π½ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚.

ΠžΠ±Π»Π°ΡΡ‚ΠΈ пространства ΠΈΠΌΠ΅Π½

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ β€” это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. Помимо глобального пространства ΠΈΠΌΠ΅Π½ (глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости), любоС пространство ΠΈΠΌΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ объявлСно Π² Π±Π»ΠΎΠΊΠ΅. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… распрСдСлСнных областСй пространства ΠΈΠΌΠ΅Π½. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using пространство ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… областях.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅Π»Π΅ пространства ΠΈΠΌΠ΅Π½, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡Π»Π΅Π½Π°ΠΌΠΈ этого пространства ΠΈΠΌΠ΅Π½, Π° ΠΈΠΌΠ΅Π½Π°, Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ этими объявлСниями Π² Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ пространства ΠΈΠΌΠ΅Π½, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Ρ‡Π»Π΅Π½ΠΎΠ² этого пространства ΠΈΠΌΠ΅Π½.

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½:

namespace A
<
int i = 1 ;
namespace B
<
int i = 2 ;
namespace C
<
int i = 3 ;
>
>
>

int main ( )
<
cout A :: i β€˜ β€˜ A :: B :: i β€˜ β€˜ A :: B :: C :: i β€˜ \n β€˜ ;

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ доступ ΠΊ Ρ‚Ρ€Π΅ΠΌ значСниям Π±Ρ‹Π» осущСствлСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ области видимости.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½

Π’ C ++ Π΅ΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, называСмая стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ. ИмСна ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сущностСй Π² этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ взяты ΠΈΠ· пространства ΠΈΠΌΠ΅Π½, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ стандартным пространством ΠΈΠΌΠ΅Π½, записанного ΠΊΠ°ΠΊ std. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° содСрТит ΠΏΠΎΠ΄Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· этих ΠΏΠΎΠ΄Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ β€” iostream. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° iostream содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ cout, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° консоль (Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»).

Имя cout Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² пространствС ΠΈΠΌΠ΅Π½ std. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ iostream с Π΅Π³ΠΎ пространством ΠΈΠΌΠ΅Π½ std, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° использованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using ΠΈ std. Π’Π΅Ρ€ΠΌΠΈΠ½ Β» #include Β» являСтся Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ прСпроцСссора ΠΈ Π½Π΅ заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с запятой. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Β«Ρ„Π°ΠΉΠ»Β» iostream Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ своСй Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ β€” это ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости. ОписаниС (ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅) пространства ΠΈΠΌΠ΅Π½ содСрТит Π±Π°Π·ΠΎΠ²Ρ‹Π΅ объявлСния ΠΈ / ΠΈΠ»ΠΈ опрСдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… сущностСй C ++. Π’Π½Π΅ опрСдСлСния пространства ΠΈΠΌΠ΅Π½ доступ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ синтаксиса Β» namespaceName :: name Β«. Помимо глобального пространства ΠΈΠΌΠ΅Π½ (глобальная ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости), любоС пространство ΠΈΠΌΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ объявлСно Π² Π±Π»ΠΎΠΊΠ΅. Π­Ρ‚ΠΎΡ‚ Π±Π»ΠΎΠΊ являСтся ΠΏΠ΅Ρ€Π²ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… распрСдСлСнных областСй пространства ΠΈΠΌΠ΅Π½. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using пространство ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΎ ΠΊΠ°ΠΊ Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… областях. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½, Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… пространств ΠΈΠΌΠ΅Π½, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это всС Ρ€Π°Π²Π½ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΈΠΌΠ΅Π½.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ (using namespace std;)

5 ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² 5

Зависит ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΉ. Π‘Ρ€Π΅Π΄ΠΈ плюсовиков традиция «Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π²Π½Π΅Π·Π°ΠΏΠ½Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ нСизвСстно Π³Π΄Π΅».

Π―Π²Π½ΠΎΠ΅ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ пространства ΠΈΠΌΡ‘Π½ β€” это ΠΈΠ·Π±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. ПолоТим, Π²Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· using namespace Π΄Π²Π° пространства ΠΈΠΌΡ‘Π½. Всё Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊΡ€Π°Ρ‚ΠΊΠΎ, красиво.

А ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹ΡˆΠ»Π° новая вСрсия ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ стали Ρ€Π΅Π·ΠΎΠ»Π²ΠΈΡ‚ΡŒΡΡ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая ΠΊ вашим Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅, Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π²Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ функция ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π’ Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС ваш ΠΊΠΎΠ΄ Π½Π΅ собСрётся. ΠœΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΠ°ΡΡ‚ΡŒ. А ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ваш ΠΊΠΎΠ΄ пСрСстанСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² 1% случаСв. Всё ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ.

ΠžΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ больно.

Насколько это Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ для вас β€” Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π²Π°ΠΌ. Если Ρƒ вас простой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΠΊ ΠΈ ΠΎΡ‚ силы ΠΏΠ°Ρ€Π° сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°), Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ пространств ΠΈΠΌΡ‘Π½. Если ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ, с дСсятками Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ (ΠΈ наглядным) всСгда ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ пространства ΠΈΠΌΡ‘Π½.

Π‘Π°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈ boost, поэтому Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Π΅Π·Π΄Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ:

. Π° Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ новая вСрсия стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ· boost ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰Π΅Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ классов. И Π²Π½Π΅Π·Π°ΠΏΠ½ΠΎ ваш ΠΊΠΎΠ΄ большС Π½Π΅ компилируСтся.

Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… языках Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ. НапримСр, Π² C# ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΠΏΠΈΡˆΡƒΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° классов, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ пространство ΠΈΠΌΡ‘Π½ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ алиасы. Π―Π·Ρ‹ΠΊ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ отличаСтся: Ρ‚Π°ΠΌ Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Π½Π΅ классов. Π­Ρ‚ΠΎ позволяСт мСньшС Ρ‚Π΅Ρ€ΡΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ Ρ€Π΅ΠΆΠ΅ Π½Π°Ρ‚Ρ‹ΠΊΠ°Ρ‚ΡŒΡΡ Π½Π° Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ с ‘using namespace std;’ Π² *.cpp-Ρ„Π°ΠΉΠ»Π°Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ

Π’ΠΎ, Ρ‡Ρ‚ΠΎ написано Π½ΠΈΠΆΠ΅, для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… C++ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ прСкрасно извСстным ΠΈ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ, Π½ΠΎ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, я пСриодичСски Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽ using namespace std; Π² ΠΊΠΎΠ΄Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π° Π½Π΅Π΄Π°Π²Π½ΠΎ Π² Π½Π°ΡˆΡƒΠΌΠ΅Π²ΡˆΠ΅ΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΏΡ€ΠΎ впСчатлСния ΠΎΡ‚ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ образования Π±Ρ‹Π»ΠΎ упомянуто, Ρ‡Ρ‚ΠΎ студСнтов Ρ‚Π°ΠΊ ΡƒΡ‡Π°Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² Π²ΡƒΠ·Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΈ сподвигло мСня Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эту Π·Π°ΠΌΠ΅Ρ‚ΠΊΡƒ.

Для Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ пространства ΠΈΠΌΠ΅Π½ Π² C++? Когда ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π²Π΅ сущности (Ρ‚ΠΈΠΏΡ‹, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΈ Ρ‚.Π΄.) ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΈ совмСстном использовании, C++ позволяСт ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ пространства с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова namespace. Всё, Ρ‡Ρ‚ΠΎ объявлСно Π²Π½ΡƒΡ‚Ρ€ΠΈ пространства ΠΈΠΌΠ΅Π½, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этому пространству ΠΈΠΌΠ΅Π½ (Π° Π½Π΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠΌΡƒ). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ using ΠΌΡ‹ вытаскиваСм сущности ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ пространства ΠΈΠΌΠ΅Π½ Π² Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ контСкст.

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ посмотрим, ΠΊ Ρ‡Π΅ΠΌΡƒ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти.

Допустим, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Foo ΠΈ Bar ΠΈ написали Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ„Π°ΠΉΠ»Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ°

. Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹Ρ‚Π°Ρ‰ΠΈΠ² всё, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² foo:: ΠΈ Π² bar:: Π² глобальноС пространство ΠΈΠΌΠ΅Π½.

ВсС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Blah() ΠΈΠ· Foo ΠΈ Quux() ΠΈΠ· Bar. Но ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ Π²Ρ‹ обновляСтС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Foo Π΄ΠΎ Π½ΠΎΠ²ΠΎΠΉ вСрсии Foo 2.0, которая Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΅Ρ‰Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π² сСбС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Quux().

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚: ΠΈ Foo 2.0, ΠΈ Bar ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Quux() Π² вашС глобальноС пространство ΠΈΠΌΠ΅Π½. Π’ Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС это Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° этапС компиляции, ΠΈ исправлСниС этого ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ усилий ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

А Π²ΠΎΡ‚ Ссли Π±Ρ‹ Π²Ρ‹ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ с Π΅Π³ΠΎ пространством ΠΈΠΌΠ΅Π½, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ, foo::Blah() ΠΈ bar::Quux(), Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ foo::Quux() Π½Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Но всё ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Ρ…ΡƒΠΆΠ΅!

Π’ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Foo 2.0 ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция foo::Quux(), ΠΏΡ€ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ компилятор ΠΏΠΎ ряду ΠΏΡ€ΠΈΡ‡ΠΈΠ½ посчитаСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°ΡˆΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² Quux(), Ρ‡Π΅ΠΌ bar::Quux(), Π²Ρ‹Π·Ρ‹Π²Π°Π²ΡˆΠ°ΡΡΡ Π² вашСм ΠΊΠΎΠ΄Π΅ Π½Π° протяТСнии ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚. Π’ΠΎΠ³Π΄Π° ваш ΠΊΠΎΠ΄ всС Ρ€Π°Π²Π½ΠΎ скомпилируСтся, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ»Ρ‡Π° Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Π±ΠΎΠ³ Π²Π΅ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ. И это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΊΡƒΡ‡Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ…ΡΡ ошибок.

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ пространство ΠΈΠΌΠ΅Π½ std:: ΠΈΠΌΠ΅Π΅Ρ‚ мноТСство ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ распространСнными (list, sort, string, iterator, swap), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, скорСС всСго, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π»ΠΈΠ±ΠΎ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π² слСдущСй вСрсии стандарта C++ Π² std добавят Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ совпадСт с ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΈΠ· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² вашСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅.

Если Π²Ρ‹ считаСтС это маловСроятным, Ρ‚ΠΎ посмотрим Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ со stackoverflow:

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Π±Ρ‹Π» Π·Π°Π΄Π°Π½ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅ Ρ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. По Ρ„Π°ΠΊΡ‚Ρƒ Ρ‚Π°ΠΌ происходит ΠΈΠΌΠ΅Π½Π½ΠΎ описанноС Π²Ρ‹ΡˆΠ΅: Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π½ΠΎ это Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ компиляции, Π° компилятор просто ΠΌΠΎΠ»Ρ‡Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ вмСсто объявлСнной Π²Ρ‹ΡˆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ distance() Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ std::distance() ΠΈΠ· std:: ΡΡ‚Π°Π²ΡˆΠ΅Π³ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ нСймспСйсом.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Ρ‚Ρƒ ΠΆΠ΅ Ρ‚Π΅ΠΌΡƒ: вмСсто Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ swap() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ std::swap(). ΠžΠΏΡΡ‚ΡŒ ΠΆΠ΅, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ошибки компиляции, Π° просто Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ происходит Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ‡Π°Ρ‰Π΅, Ρ‡Π΅ΠΌ каТСтся.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ C++. Π§Π°ΡΡ‚ΡŒ 8. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ пространства ΠΈΠΌΡ‘Π½

РазбираСмся, ΠΊΠ°ΠΊ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΊΠΎΠ΄ΠΎΠΌ Π² нСсколько Ρ€Π°Π·, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. 29dbddf250c42489fb64767096bb7d6d. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами Ρ„ΠΎΡ‚ΠΎ. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами-29dbddf250c42489fb64767096bb7d6d. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 29dbddf250c42489fb64767096bb7d6d

Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. b933b44d0cc08613517c34f278be8774. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами Ρ„ΠΎΡ‚ΠΎ. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами-b933b44d0cc08613517c34f278be8774. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° b933b44d0cc08613517c34f278be8774

Π­Ρ‚ΠΎ восьмая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· сСрии статСй Β«Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Π² C++Β». Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² массивах. БСгодня β€” Π΅Ρ‰Ρ‘ интСрСснСС.

НСдавно ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡƒΠΆΠ΅ написаны Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Если такая Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав языка ΠΈΠ»ΠΈ находится Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ доступС, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС Π΅Ρ‘ возмоТности.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ пригодятся Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…. Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрёмся с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΈ научимся ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ свои.

Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. kucheryaviy. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами Ρ„ΠΎΡ‚ΠΎ. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами-kucheryaviy. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° kucheryaviy

ΠŸΠΈΡˆΠ΅Ρ‚ ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ, Π² свободноС врСмя создаСт ΠΈΠ³Ρ€Ρ‹. ΠœΠ΅Ρ‡Ρ‚Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ свою ΡΡ‚ΡƒΠ΄ΠΈΡŽ ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π»Π°ΠΌΠΏΠΎΠ²Ρ‹Π΅ RPG.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ Π² C++

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΡ‘Π½ (Π°Π½Π³Π». namespace) β€” это Π³Ρ€ΡƒΠΏΠΏΠ° взаимосвязанных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, констант, классов, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π‘ самого Π½Π°Ρ‡Π°Π»Π° изучСния C++ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ std: cout, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». На самом Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° называСтся просто cout, Π° std β€” это пространство ΠΈΠΌΡ‘Π½, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½Π° находится.

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ логичСски ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НапримСр, матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, физичСскиС, бухгалтСрскиС ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания пространства ΠΈΠΌΡ‘Π½:

ΠœΡ‹ объСдиняСм Π² Π³Ρ€ΡƒΠΏΠΏΡƒ нСсколько Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΠ·Π±Π΅Π³Π°Π΅ΠΌ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈΠΌΡ‘Π½. Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΈΠ· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹Ρ… Π²Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ функция, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ sum (). По пространству ΠΈΠΌΡ‘Π½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠΉΠΌΡ‘Ρ‚, какая ΠΈΠΌΠ΅Π½Π½ΠΎ функция Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π°.

Если ΠΆΠ΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ using:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Π½Π° ΠΈΠ· mynames ΠΈ std, поэтому Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ошибки Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

Π’Π°ΠΊΠΆΠ΅ послС using ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ Ρ†Π΅Π»ΠΎΠ΅ пространство ΠΈΠΌΡ‘Π½, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

Π€Π°ΠΉΠ»Ρ‹ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² C++

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΡ‘Π½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ пСрСнСсти Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² основном Ρ„Π°ΠΉΠ»Π΅.

Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main (), ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠ΄ β€” Π½Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° здСсь Π½Π΅ Π½ΡƒΠΆΠ½Π°. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ iostream, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ собираСмся Π½ΠΈΡ‡Π΅Π³ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² свой Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹.

ΠŸΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚Π΅ mylib.h Π² ΠΏΠ°ΠΏΠΊΡƒ, Π³Π΄Π΅ находится ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ вмСсто ΡƒΠ³Π»ΠΎΠ²Ρ‹Ρ… скобок: ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², Π° Π²Ρ‚ΠΎΡ€Ρ‹Π΅ β€” для систСмных.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈΠ· этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

Π’ΠΎΡ‚ Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²Π΅Π΄Π΅Π½ΠΎ:

Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. 13371409062020 27e9aa5bdf801f94f7728fe14d1ac08405e5a691. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами Ρ„ΠΎΡ‚ΠΎ. Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами-13371409062020 27e9aa5bdf801f94f7728fe14d1ac08405e5a691. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Using namespace std c Ρ‡Ρ‚ΠΎ это своими словами. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 13371409062020 27e9aa5bdf801f94f7728fe14d1ac08405e5a691

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ функция pow, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ матСматичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, сущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ cmath.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ пространства ΠΈΠΌΡ‘Π½ β€” это ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ инструмСнты для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π΅ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Π»ΡŽΠ±Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, поэтому ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»ΠΈ ΠΈΡ‰ΡƒΡ‚ спСциалистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

Если Π²Ρ‹ часто Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для сСбя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Ρ‘ Π²ΠΎ всС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Однако Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ стоит ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°Π½ΠΎΠ²ΠΎ β€” Ρ‚Π°ΠΊ Π²Ρ‹ смоТСтС Π΅Π³ΠΎ постоянно ΠΏΠ΅Ρ€Π΅ΠΎΡΠΌΡ‹ΡΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π‘++, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ наш курс. Π’ Π½Ρ‘ΠΌ всС аспСкты языка Ρ€Π°Π·Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΈ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ задания Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΠΎΠ΄Π°Π²Π°Ρ‚Π΅Π»Π΅ΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ (C++)

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ объявлСниС пространства ΠΈΠΌΠ΅Π½ ΠΈ продСмонстрированы Ρ‚Ρ€ΠΈ способа доступа ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ пространства ΠΈΠΌΠ΅Π½ ΠΈΠ· ΠΊΠΎΠ΄Π° Π·Π° Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ.

ИспользованиС полного имСни:

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости ΠΎΠ΄ΠΈΠ½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ объявлСниС using:

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ пространства ΠΈΠΌΠ΅Π½, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using

using Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС ΠΈΠΌΠ΅Π½Π° Π² namespace для использования Π±Π΅Π· using Π² качСствС явного ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. ИспользованиС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π² Ρ„Π°ΠΉΠ»Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (Ρ‚. Π΅. *. cpp) ΠΏΡ€ΠΈ использовании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² пространствС ΠΈΠΌΠ΅Π½; Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, рассмотритС использованиС объявлСния using, Ρ‡Ρ‚ΠΎΠ±Ρ‹ привСсти эти ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ, Π° Π½Π΅ всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² пространствС ΠΈΠΌΠ΅Π½. Если локальная пСрСмСнная ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ имя, ΠΊΠ°ΠΊ ΠΈ пСрСмСнная пространства ΠΈΠΌΠ΅Π½, Ρ‚ΠΎ пСрСмСнная пространства ΠΈΠΌΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ скрытой. Π‘ΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ пространства ΠΈΠΌΠ΅Π½ с Ρ‚Π΅ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈ Ρƒ глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, являСтся ошибкой.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ using ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ Ρ‡Π°ΡΡ‚ΡŒ CPP-Ρ„Π°ΠΉΠ»Π° (Π² области видимости Ρ„Π°ΠΉΠ»Π°) ΠΈΠ»ΠΈ Π²Π½ΡƒΡ‚Ρ€ΡŒ опрСдСлСния класса ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

Π‘Π΅Π· особой нСобходимости Π½Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using Π² Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² (*.h), Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ любой Ρ„Π°ΠΉΠ», содСрТащий этот Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ всС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ пространства ΠΈΠΌΠ΅Π½ Π² ΠΎΠ±Π»Π°ΡΡ‚ΡŒ видимости, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ скрытиС ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ. Π’ Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² всСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°. Если эти ΠΈΠΌΠ΅Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ слишком Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ псСвдоним пространства ΠΈΠΌΠ΅Π½ для ΠΈΡ… сокращСния. (Π‘ΠΌ. Π½ΠΈΠΆΠ΅.)

ОбъявлСниС пространств ΠΈΠΌΠ΅Π½ ΠΈ ΠΈΡ… Ρ‡Π»Π΅Π½ΠΎΠ²

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, пространство ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Если Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ находятся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, опрСдСляйтС ΠΈΠΌΠ΅Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Π Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π² контосодата. cpp Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя, Π΄Π°ΠΆΠ΅ Ссли ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ using Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°:

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ объявлСно Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π±Π»ΠΎΠΊΠ°Ρ… Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ соСдинит вмСстС всС части Π²ΠΎ врСмя ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ пространство ΠΈΠΌΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всС Ρ‡Π»Π΅Π½Ρ‹, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Π΅ Π²ΠΎ всСх частях. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся пространство ΠΈΠΌΠ΅Π½ std, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π² стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅.

Π§Π»Π΅Π½Ρ‹ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π·Π° Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ, Ссли ΠΎΠ½ΠΈ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ ΠΏΡƒΡ‚Π΅ΠΌ явной ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ опрСдСляСмого пространства ΠΈΠΌΠ΅Π½. Однако ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ послС Ρ‚ΠΎΡ‡ΠΊΠΈ объявлСния Π² пространствС ΠΈΠΌΠ΅Π½, ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΌ Ρ‚ΠΎ пространство ΠΈΠΌΠ΅Π½, Π³Π΄Π΅ находится объявлСниС. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π­Ρ‚Π° ошибка ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρ‡Π»Π΅Π½Ρ‹ пространства ΠΈΠΌΠ΅Π½ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΈ эти Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½ std

Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΠ΅Π½ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ ΠΊ Ρ‡Π»Π΅Π½Π°ΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта, Π½ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ элСмСнты Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½ (Ссли Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ΠΎ Π½Π΅ объявлСно ΠΊΠ°ΠΊ встроСнноС), ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅:

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для инкапсуляции Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ интСрфСйса Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½.

ВстроСнныС пространства ΠΈΠΌΠ΅Π½ (C++ 11)

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… пространств ΠΈΠΌΠ΅Π½ Ρ‡Π»Π΅Π½Ρ‹ встроСнного пространства ΠΈΠΌΠ΅Π½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Ρ‡Π»Π΅Π½Ρ‹ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½. Π­Ρ‚Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ поиск ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ с Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² срСди Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ встроСнном пространствС ΠΈΠΌΠ΅Π½. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ спСциализации Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½ для шаблонов, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π²ΠΎ встроСнном пространствС ΠΈΠΌΠ΅Π½. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ внСшний ΠΊΠΎΠ΄ привязываСтся ΠΊ встроСнному пространству ΠΈΠΌΠ΅Π½ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½ шаблона, объявлСнного Π²ΠΎ встроСнном пространствС ΠΈΠΌΠ΅Π½.

ВстроСнныС пространства ΠΈΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ управлСния вСрсиями для управлСния измСнСниями Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠΌ интСрфСйсС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½ ΠΈ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ интСрфСйса Π² своСм собствСнном пространствС ΠΈΠΌΠ΅Π½, Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π² Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ содСрТит ΡΠ°ΠΌΡƒΡŽ послСднюю ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, квалифицируСтся ΠΊΠ°ΠΊ встроСнноС ΠΈ поэтому прСдставляСтся Ρ‚Π°ΠΊ, Π±ΡƒΠ΄Ρ‚ΠΎ ΠΎΠ½ΠΎ являСтся нСпосрСдствСнным Ρ‡Π»Π΅Π½ΠΎΠΌ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ ΠΊΠΎΠ΄, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Parent::Class, автоматичСски привязываСтся ΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΊΠΎΠ΄Ρƒ. ΠšΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π½Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ пространству ΠΈΠΌΠ΅Π½, содСрТащСму Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово inline Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ объявлСнию пространства ΠΈΠΌΠ΅Π½ Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅ компиляции.

ΠŸΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ‹ пространств ΠΈΠΌΠ΅Π½

ИмСна пространств ΠΈΠΌΠ΅Π½ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Π½Π΅ слишком ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ. Если Π΄Π»ΠΈΠ½Π° ΠΈΠΌΠ΅Π½ΠΈ затрудняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, Π³Π΄Π΅ нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ using, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ псСвдоним пространства ΠΈΠΌΠ΅Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ для фактичСского ΠΈΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹Π΅ ΠΈΠ»ΠΈ бСзымянныС пространства ΠΈΠΌΠ΅Π½

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ явноС пространство ΠΈΠΌΠ΅Π½, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅ΠΌΡƒ имя.

Π­Ρ‚ΠΎ называСтся бСзымянным ΠΈΠ»ΠΈ Π°Π½ΠΎΠ½ΠΈΠΌΠ½Ρ‹ΠΌ пространством ΠΈΠΌΠ΅Π½, ΠΈ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ссли Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ объявлСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для ΠΊΠΎΠ΄Π° Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… (Ρ‚. Π΅. ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ) Π±Π΅Π· создания ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ пространства ΠΈΠΌΠ΅Π½. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄, находящийся Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ Ρ„Π°ΠΉΠ»Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π² бСзымянном пространствС ΠΈΠΌΠ΅Π½, Π½ΠΎ эти ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ само пространство ΠΈΠΌΠ΅Π½, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΌ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ этого Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ, Ρ‚ΠΎΡ‡Π½Π΅Π΅, Π²Π½Π΅ Π±Π»ΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *