R.13.4.2 ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
ΠΠΈΠ½Π°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π° (Β§R.9.3), ΠΈΠΌΠ΅ΡΡΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, ΠΈΠ»ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ ΡΠ²Π»ΡΡΡΠ΅ΠΉΡΡ ΡΠ»Π΅Π½ΠΎΠΌ, Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π»Ρ Π²ΡΡΠΊΠΎΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ @ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ [email protected] ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ [email protected](y) ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ [email protected](x,y). ΠΡΠ»ΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠ±ΠΎΠΈΡ Π²ΠΈΠ΄ΠΎΠ², ΡΠΎ ΠΊΠ°ΠΊΠ°Ρ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² (Β§R.13.2).
R.13.4.3 ΠΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ
Π€ΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ operator=() Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ-ΡΠ»Π΅Π½ΠΎΠΌ. ΠΠ½Π° Π½Π΅ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ (Β§R.12.8). ΠΠΎΠ»Π΅Π΅ ΡΠΎΠ³ΠΎ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° X ΡΡΠ½ΠΊΡΠΈΡ operator=, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ operator=, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅Π½Π°ΠΌ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° X.
X& X::operator=(const X& from)
{
// ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ»Π΅Π½Π°ΠΌ X
}
R.13.4.4 ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ Π΅ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ Π²ΠΈΠ΄Π°:
ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ( ΡΠΏΠΈΡΠΎΠΊ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ opt )
ΠΠ½Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄, Π° ΡΠΏΠΈΡΠΎΠΊ-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΡΡΠΎΠΉ), - Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°Π½Π΄. ΠΠΌΠ΅Π½Π΅ΠΌ, Π·Π°Π΄Π°ΡΡΠΈΠΌ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ»ΡΠΆΠΈΡ operator(), ΠΈ Π²ΡΠ·ΠΎΠ² x(arg1,arg2,arg3) Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° x ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ x.operator()(arg1,arg2,arg3). Π€ΡΠ½ΠΊΡΠΈΡ operator() Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ-ΡΠ»Π΅Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° x.
R.13.4.5 ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ
ΠΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΊ:
ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ [ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ]
ΡΡΠΈΡΠ°Π΅ΡΡΡ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠ΅ΠΉ x[y] Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° x ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ x.operator[](y). Π€ΡΠ½ΠΊΡΠΈΡ operator[] Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ-ΡΠ»Π΅Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° x.
R.13.4.6 ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ°
ΠΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ -βΊ:
ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ -βΊ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠ΅-Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΠ½ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΡΠ½Π°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ° x Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ x-βΊm ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ (x.operator-βΊ())-βΊm. ΠΡΡΡΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ operator-βΊ() Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° ΠΊΠ»Π°ΡΡ, ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΊΠ»Π°ΡΡ, ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ°, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ operator-βΊ(). ΠΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π½Π΅ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ-ΡΠ»Π΅Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°.
R.13.4.7 ΠΠ½ΠΊΡΠ΅ΠΌΠ΅Π½Ρ ΠΈ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½Ρ
Π€ΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ operator++ ΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠ΅ΡΠΈΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° ++. Π€ΡΠ½ΠΊΡΠΈΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ operator++ ΠΈ Ρ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Π·Π°Π΄Π°Π΅Ρ Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° ++. ΠΠ»Ρ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ++ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΈΠΏΠ° int, ΠΈ, ΠΊΠΎΠ³Π΄Π° Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°, ΡΡΠ½ΠΊΡΠΈΡ operator++ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎ Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ, ΡΠ°Π²Π½ΡΠΌ Π½ΡΠ»Ρ. ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
class X {
public:
X operator++(); // ΠΏΡΠ΅ΡΠΈΠΊΡΠ½Π°Ρ ++a
X operator++(int) // ΠΏΠΎΡΡΡΠΈΠΊΡΠ½Π°Ρ a++
};
void f(X a)
{
++a; // a.operator++();
a++; // a.operator++(0);
a.operator++(); // ΡΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ²: Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ ++a;
a.operator++(0); // ΡΠ²Π½ΡΠΉ Π²ΡΠ·ΠΎΠ²: Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ a++;
}
ΠΡΠ΅ΡΠΈΠΊΡΠ½ΡΠ΅ ΠΈ ΠΏΠΎΡΡΡΠΈΠΊΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π΅ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ° - ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
R.14 Π¨ΠΠΠΠΠΠ« Π’ΠΠΠ
R.14.1 Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΠΈΠΏΠ°
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ΅Π»ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ.
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°:
template βΉ ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° βΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°:
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°
ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° , ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°:
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠΈΠΏΠ°
ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠΈΠΏΠ°:
class ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡΠ°.
Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ-ΡΠΈΠΏΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΈΠΌΡ-ΡΠΈΠΏΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΈΠΏΠ°.
ΠΠΌΠ΅Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΡΠΈΠ½ΡΡΡΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ Π΄Π»Ρ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅.
R.14.2 Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ²
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΡΡΡΠΎΠΈΡΡΡΡ ΠΊΠ»Π°ΡΡΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΡ ΡΡΡΠΎΠΈΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π¨Π°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° vector ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
templateβΉclass TβΊ class vector {
T* v;
int sz;
public:
vector(int);
T& operator[](int);
T& elem(int i) { return v[i]; }
//β¦
};
ΠΡΠ΅ΡΠΈΠΊΡ templateβΉclass TβΊ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ°, ΠΈ ΡΡΠΎ Π² ΡΡΠΎΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈΠΌΡ-ΡΠΈΠΏΠ° T, ΠΈΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, vector - ΡΡΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠΈΠΏ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ T.
ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ°:
ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ°:
ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° βΉ ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° βΊ
ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°:
ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°
ΡΠΏΠΈΡΠΎΠΊ-ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° , ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°
ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°:
Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅
ΠΈΠΌΡ-ΡΠΈΠΏΠ°
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ-ΠΊΠ»Π°ΡΡΠ° (Β§R.9).
ΠΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠΈΠΏΠ° Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ°, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΌ ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΈ ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ΅Π½ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΠΊΠ»Π°ΡΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ - ΠΈΠΌΠ΅Π½Π΅ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ°, ΡΠΌ. Β§R.14.5.
ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ° ΠΈΠΌΡ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ,ΡΠΎ ΠΎΠ½Π° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ.
ΠΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΈ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΎΠ½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ°, ΠΊΠ»Π°ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΠ΅ΠΊΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΈΠΏ.
Π’ΠΈΠΏΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠΏΠΈΡΠΊΠ΅-ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ-ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ-ΠΊΠ»Π°ΡΡΠ°, Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΈΠΏΠ°ΠΌ, Π·Π°Π΄Π°Π½Π½ΡΠΌ Π² ΡΠΏΠΈΡΠΊΠ΅-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ°. (ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΈΠΏΠ°, Π° Π²ΡΠΎΡΡΠ΅ - ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌΠΈ.)
ΠΡΠΎΠΌΠ΅ ΡΠΈΠΏΠΎΠ² Π² ΡΠΏΠΈΡΠΊΠ΅-ΠΏΠ°ΡΠ°ΠΌ-ΡΠ°Π±Π»ΠΎΠ½Π°-ΡΠΈΠΏΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ: Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π°Π΄ΡΠ΅ΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΡ Π²Π½Π΅ΡΠ½Π΅ΠΌΡ ΡΠ²ΡΠ·ΡΠ²Π°Π½ΠΈΡ, ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅Π½Ρ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ ΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ (Β§R.13.2).
ΠΡΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΈΠΏΠ° vector:
vectorβΉintβΊ v1(20);
vectorβΉcomplexβΊ v2(30);
typedef vectorβΉcomplexβΊ cvec; // cvec ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ
// vectorβΉcomplexβΊ
cvec v3(40); // v2 ΠΈ v3 ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°
v1[3] = 7;
v2[3] = v3.elem(4) = complex(7,8);
ΠΠ΄Π΅ΡΡ vectorβΉintβΊ ΠΈ vectorβΉcomplexβΊ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, ΠΈ ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π΅ΡΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΈΠΏΠ° vector.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ΅-ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠΌΠ΅Π½Π΅ΠΌ-ΠΊΠ»Π°ΡΡΠ°, ΡΠΎ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ°ΠΌ, Π³Π΄Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
class vectorβΉShape*βΊ;
vectorβΉWindowβΊ* current_window;
class svector: public vectorβΉShape*βΊ {/*β¦ */};
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΡΠ»Π΅Π½Π° ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΄Π°Π½ΠΎ Π² Β§R.14.6.
R.14.3 ΠΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½ΠΎΡΡΡ ΡΠΈΠΏΠΎΠ²
ΠΠ²Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠ΅-ΠΈΠΌΡ-ΠΊΠ»Π°ΡΡΠ° ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΊΠ»Π°ΡΡ, Π΅ΡΠ»ΠΈ Π² Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ ΠΈΠΌΠ΅Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΡΠΈΠΏΠ° ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΡ x ΠΈ y ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ΅Π½ ΠΎΡ ΡΠΈΠΏΠ° z:
templateβΉclass E, int sizeβΊ class buffer;
bufferβΉchar, 2*512βΊ x;
bufferβΉchar,1024βΊ y;
bufferβΉchar,512βΊ z;
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΡΠΈΠΏ ΠΈΠΌΠ΅ΡΡ x2 ΠΈ x3. ΠΠ½ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΡΠΈΠΏΠΎΠ² x1 ΠΈ x4:
templateβΉclass T, void(*err_fct)()βΊ
class list {/*β¦ */};
listβΉint,&error_handler1βΊ x1;
listβΉint,&error_handler2βΊ x2;
listβΉint,&error_handler2βΊ x3;
listβΉchar,&error_handler2βΊ x4;
R.14.4 Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠ°ΠΊ Π±ΡΠ΄Π΅Ρ ΡΡΡΠΎΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ sort ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
templateβΉclass TβΊ void sort(vectorβΉTβΊ);
Π¨Π°Π±Π»ΠΎΠ½ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅Ρ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π€ΡΠ½ΠΊΡΠΈΡ, ΠΏΠΎΡΠΎΠΆΠ΄Π°Π΅ΠΌΠ°Ρ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΡΠΈΠΏΠ° Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΉ, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ. ΠΠ½Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΊΠ°Π·Π°Π½ ΡΠΈΠΏ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΡΠΌ. Β§R.14.5.
ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ°Π±Π»ΠΎΠ½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΡΠΈΠΏΠ° Π½Π΅ Π·Π°Π΄Π°ΡΡΡΡ ΡΠ²Π½ΠΎ, Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
vectorβΉcomplexβΊ cv(100);
vectorβΉintβΊ ci(200);
void f(vectorβΉcomplexβΊ& cv, vectorβΉintβΊ& ci)
{
sort(cv); // Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ sort(vectorβΉcomplexβΊ)
sort(ci); // Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ sort(vectorβΉintβΊ)
}
Π¨Π°Π±Π»ΠΎΠ½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π° ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±Π»ΠΎΠ½Π½ΡΡ ΠΈ ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π°Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΡΡΠΈ ΡΠ°Π³Π°: