float y[4][3] = {
{1}, {2}, {3}, {4}
};
ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ y (ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ²), Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 0.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ Π² Β§R.12.6.1.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π±Π΅Π· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π² ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ, ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ»Π΅Π½Π° ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
union u {i nt a; char* b; };
u a = {1};
u b = a;
u c = 1; // ΠΎΡΠΈΠ±ΠΊΠ°
u d = {0, "asdf"}; // ΠΎΡΠΈΠ±ΠΊΠ°
u e = {"asdf"}; // ΠΎΡΠΈΠ±ΠΊΠ°
Π§ΠΈΡΠ»ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ² Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΡΠΈΡΠ»Π° ΡΠ»Π΅Π½ΠΎΠ² ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½Π°:
char cv[4] = {'a', 's', 'd', 'f', 0}; // ΠΎΡΠΈΠ±ΠΊΠ°
R.8.4.2 Π‘ΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ
ΠΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π·Π½Π°ΠΊΠΎΠ²ΡΡ ΠΈΠ»ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΡΡ ) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΎΠΉ-Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ: ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°. Π‘Π»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ:
char msg[] = "Syntax error on line %s\n";
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ '\n' Π·Π°Π΄Π°Π΅Ρ ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ», ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ» '\0', sizeof(msg) ΡΠ°Π²Π½ΠΎ 25.
ΠΠ΅Π»ΡΠ·Ρ Π·Π°Π΄Π°Π²Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠ², ΡΠ΅ΠΌ Π΅ΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΌΠ°ΡΡΠΈΠ²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ΅Π½: Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΠΌΠ΅ΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΠ΅Π³ΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Π° ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ ('\0'):
char cv[4] = "asdf"; // ΠΎΡΠΈΠ±ΠΊΠ°
R.8.4.3 Π‘ΡΡΠ»ΠΊΠΈ
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΎΠΏΠΈΡΠ°Π½Π½Π°Ρ ΠΊΠ°ΠΊ T&, Ρ.Π΅. "ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΈΠΏ T" (Β§R.8.2.2), Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° T ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΊ ΡΠΈΠΏΡ T, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
void f()
{
int i;
int& r = i; // `r' ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° `i'
r = 1; // `i' ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 1
int* p = &r; // `p' ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° `i'
int& rr = r; // `rr' ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠΎ, Π½Π° ΡΡΠΎ ΡΡΡΠ»Π°Π»ΠΎΡΡ `r',
// Ρ.Π΅. Π½Π° `i'
};
Π‘ΡΡΠ»ΠΊΡ ΠΏΠΎΡΠ»Π΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅Π»ΡΠ·Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π»Π° Π΄ΡΡΠ³ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΡΠ»ΠΊΠΈ ΡΡΠ°ΠΊΡΡΠ΅ΡΡΡ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠ»ΠΊΠ΅. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (Β§R.5.2.2) ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ (Β§R.6.6.3) ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΡΠΊΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (Β§R.8.2.5), Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΈΠΏΠ°, Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ»Π΅Π½Π° ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° (Β§R.9.2) ΠΈ ΡΠ°ΠΌ, Π³Π΄Π΅ ΡΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ extern, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
int& r1; // ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
extern int& r2; // Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ
ΠΡΠ»ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΈΠΏ T ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π΄ΡΠ΅ΡΠΎΠΌ ΡΠΈΠΏΠ° T ΠΈΠ»ΠΈ ΡΠΈΠΏΠΎΠΌ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ T (Β§R.10), Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ T ΡΠ»ΡΠΆΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΡΠΈΠΏΠΎΠΌ (Β§R.4.6), ΡΡΡΠ»ΠΊΠ° Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ. ΠΠ½Π°ΡΠ΅, Π² ΡΠΎΠΌ ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ»ΠΊΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ const, Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΠΏΠ° T ΠΈ ΠΏΡΠΎΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π·Π°Π΄Π°Π½Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΎΡΠΎΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΡΠ»ΠΊΠ° ΠΈΠ³ΡΠ°Π΅Ρ ΡΠΎΠ»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
double d = 1.0;
double& rd = d; // rd ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° `d'
const double& rcd = d; // rcd ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° `d'
double& rd2 = 1; // ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠΈΠΏΠ°
const double& rcd2 = 1; // rcd2 ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ
// ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ `1'
Π‘ΡΡΠ»ΠΊΡ Π½Π° volatile T ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° volatile T ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ T, Π½ΠΎ Π½Π΅ const T. Π‘ΡΡΠ»ΠΊΡ Π½Π° const T ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ const T, ΠΏΡΠΎΡΡΠΎ T ΠΈΠ»ΠΈ ΡΠ΅ΠΌ-ΡΠΎ, ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΏ T, Π½ΠΎ Π½Π΅ volatile T. Π‘ΡΡΠ»ΠΊΡ Π½Π° ΡΠΈΠΏ T (Π±Π΅Π· const ΠΈΠ»ΠΈ volatile) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΡΠΈΠΏΠ° T.
ΠΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ (Β§R.3.5). ΠΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠ»Π°ΡΡ B ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° D ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ Π ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ Π΄Π»Ρ D (ΡΠΎΠ³Π΄Π° Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ "D Π΅ΡΡΡ B"), ΡΠΌ. Β§R.4.7.
R.9 ΠΊΠ»Π°ΡΡΡ
ΠΠ»Π°ΡΡ Π΅ΡΡΡ ΡΠΈΠΏ. ΠΠ³ΠΎ ΠΈΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° (Β§R.9.1), Ρ.Π΅. ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π·Π°ΡΠ΅Π·Π΅ΡΠ²ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π² Π΅Π³ΠΎ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ°:
ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ-ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ-ΡΠΈΠΏΠ° (Β§R.7.1.6). ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΡΡΠΎΠΉ) ΡΠ»Π΅Π½ΠΎΠ².
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ°:
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ-ΠΊΠ»Π°ΡΡΠ° {ΡΠΏΠΈΡΠΎΠΊ-ΡΠ»Π΅Π½ΠΎΠ² opt}
Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ-ΠΊΠ»Π°ΡΡΠ°:
ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅-ΡΠ»ΠΎΠ²ΠΎ-ΠΊΠ»Π°ΡΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ opt ΡΠΏΠ΅Ρ-Π±Π°Π·ΠΎΠ²ΡΡ opt
ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅-ΡΠ»ΠΎΠ²ΠΎ-ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° ΡΠΏΠ΅Ρ-Π±Π°Π·ΠΎΠ²ΡΡ opt
ΡΠ»ΡΠΆΠ΅Π±Π½ΠΎΠ΅-ΡΠ»ΠΎΠ²ΠΎ-ΠΊΠ»Π°ΡΡΠ°:
class
struct
union
ΠΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° Π΄Π°ΠΆΠ΅ Π² ΡΠΏΠΈΡΠΊΠ΅-ΡΠ»Π΅Π½ΠΎΠ² ΡΠ°ΠΌΠΎΠ³ΠΎ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ±ΡΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ° Π½Π°Π·ΡΠ²Π°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»Π°ΡΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΠΊΠ»Π°ΡΡΠ°, Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π΅Π³ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Ρ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΅ΡΠ΅ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ.
ΠΠ±ΡΠ΅ΠΊΡΡ ΠΏΡΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΠ΅ΡΡ Π½Π΅Π½ΡΠ»Π΅Π²ΠΎΠΉ ΡΠ°Π·ΠΌΠ΅Ρ.
ΠΠ±ΡΠ΅ΠΊΡΡ ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ (Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΡΠ΅Ρ ΠΊΠ»Π°ΡΡΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ, ΡΠΌ. Β§R.12.8). ΠΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ, ΠΌΠΎΠ³ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠΌ. Β§R.13.4.
Π‘ΡΡΡΠΊΡΡΡΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌ-ΡΠ»ΠΎΠ²ΠΎΠΌ-ΠΊΠ»Π°ΡΡΠ° struct; Π΅Π΅ ΡΠ»Π΅Π½Ρ ΠΈ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ (Β§R.10) ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ (Β§R.11). ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌ-ΡΠ»ΠΎΠ²ΠΎΠΌ-ΠΊΠ»Π°ΡΡΠ° union; Π΅Π³ΠΎ ΡΠ»Π΅Π½Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΈ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅Π½ (Β§R.9.5).
R.9.1 ΠΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠ°
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΏ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ²:
struct X { int a; };
struct Y { int a; };
X a1;
Y a2;
int a3;
ΠΡΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ²:
a1 = a2; // ΠΎΡΠΈΠ±ΠΊΠ°: Y ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ X
a1 = a3; // ΠΎΡΠΈΠ±ΠΊΠ°: int ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΡΡ X
ΠΠΈΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° (Β§R.13) ΡΡΠ½ΠΊΡΠΈΠΈ f(), Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΎΠΉ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
int f(X);
int f(Y);
ΠΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅ Π½Π΅Π»ΡΠ·Ρ Π΄Π²Π°ΠΆΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΊΠ»Π°ΡΡ, ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠ° Π½ΠΈΠΆΠ΅, Π³Π΄Π΅ Π΄Π²Π°ΠΆΠ΄Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ S:
struct S { int a; };
struct S { int a; }; // ΠΎΡΠΈΠ±ΠΊΠ°, ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π² ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΠΈ Π·Π°ΠΊΡΡΠ²Π°Π΅Ρ Π»ΡΠ±ΠΎΠΉ ΠΊΠ»Π°ΡΡ, ΠΎΠ±ΡΠ΅ΠΊΡ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (Β§R.3.2). ΠΡΠ»ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ°ΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π³Π΄Π΅ ΡΠΆΠ΅ Π±ΡΠ» ΠΎΠΏΠΈΡΠ°Π½ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΡ, ΡΠΎ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΊΠ»Π°ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ-ΡΠΈΠΏΠ° (Β§R.7.1.6), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
struct stat {
//β¦
};
stat gstt; // ΠΏΡΠΎΡΡΠΎ `stat' ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ
// ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
int stat(struct stat*); // ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ `stat' ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ
void f()
{
struct stat* ps; // Π½ΡΠΆΠ΅Π½ ΠΏΡΠ΅ΡΠΈΠΊΡ struct
// Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ stat
//β¦
stat(ps); // Π²ΡΠ·ΠΎΠ² stat()
//β¦
}
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ-ΡΠΈΠΏΠ° Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ»ΡΠΆΠ΅Π±Π½ΡΠΌ-ΡΠ»ΠΎΠ²ΠΎΠΌ-ΠΊΠ»Π°ΡΡΠ°, Π½ΠΎ Π±Π΅Π· ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΠΆΠΈΡΡ Π΄Π»Ρ Π·Π°Π΄Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°, ΠΊΠ°ΠΊ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ»Π°ΡΡ Π½Π΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
struct s { int a; };
void g()
{
struct s; // ΡΠΊΡΡΠ²Π°Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΡΡΡΠΊΡΡΡΡ `s'
s* p; // ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° `s'
struct s { char* p; }; // ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ `s'
}
Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠ°ΠΌ ΡΡΡΠ»Π°ΡΡΡΡ Π΄ΡΡΠ³ Π½Π° Π΄ΡΡΠ³Π° ΠΏΡΠΈ ΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ, ΠΏΡΠΈΠΌΠ΅Ρ,
class vector;
class matrix {
//β¦
friend vector operator*(matrix&, vector&);
};
class vector {
//β¦
friend vector operator*(matrix&, vector&);
};
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ friend (Π΄ΡΡΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ) ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΡΡΡ Π² Β§R.11.4, Π° ΡΡΠ½ΠΊΡΠΈΡ operator Π² Β§R.13.4. ΠΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠ°ΠΊ Π΄ΡΡΠ³, ΠΏΠΎΠΊΠ° Π΅ΡΠ΅ Π½Π΅ ΠΎΠΏΠΈΡΠ°Π½, Π΅Π³ΠΎ ΠΈΠΌΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ friend (Β§R.11.4).
Π ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ-ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ-ΡΠΈΠΏΠ° (Β§R.7.1.6). ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° ΡΠ΅ΠΌ, ΡΡΠΎ Π΅ΡΠ»ΠΈ ΠΊΠ»Π°ΡΡ, ΡΡΠ΅ ΠΈΠΌΡ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΠΎ ΠΈΠΌΡ ΠΈΠ· ΡΡΠΎΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ ΡΡΡΠ»Π°ΡΡΡΡ Π½Π° Π½Π΅Π³ΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: