ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅, ΠΏΠΎΠΈΡΠΊ ΠΈΠΌΠ΅Π½ ΡΡΠ½ΠΊΡΠΈΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΡΠΈΠΏΠ° ΠΊΠ»Π°ΡΡΠ°, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. ΠΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²Π»ΠΈΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈ Π½Π° Π²ΡΠ±ΠΎΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ². ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠ»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΈΠΏΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° (Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ), ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² ΠΏΠΎΠΈΡΠΊΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°. ΠΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΈΠΌΡ, ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠ΅Π΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅, Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² Π½Π°Π±ΠΎΡ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ². ΠΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄Π°ΠΆΠ΅ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΈΠ΄ΠΈΠΌΡ Π² ΡΠΎΡΠΊΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ:
namespace NS {
class Quote { /* ... */ };
void display(const Quote&) { /* ... */ }
}
// ΠΠ°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Bulk_item ΠΎΠ±ΡΡΠ²Π»Π΅Π½ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ NS
class Bulk_item : public NS::Quote { /* ... */ };
int main() {
Bulk_item book1;
display(book1);
return 0;
}
ΠΡΠ³ΡΠΌΠ΅Π½Ρ book1 ΡΡΠ½ΠΊΡΠΈΠΈ display() ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΠΏ ΠΊΠ»Π°ΡΡΠ° Bulk_item. Π€ΡΠ½ΠΊΡΠΈΡΠΌΠΈ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ display() Π±ΡΠ΄ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡΠΌΠΈ, Π²ΠΈΠ΄ΠΈΠΌΡΠΌΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ·ΠΎΠ²Π°, Π½ΠΎ ΠΈ ΡΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ ΠΊΠ»Π°ΡΡΠ° Bulk_item ΠΈ Π΅Π³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Quote. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠ½ΠΊΡΠΈΡ display(const Quote&), ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½Π°Ρ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΈΠΌΠ΅Π½ NS, Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ².
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ usingΠ§ΡΠΎΠ±Ρ ΡΡΡΠ½ΠΈΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΉ using ΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΡ, Π° Π½Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 15.6):
using NS::print(int); // ΠΎΡΠΈΠ±ΠΊΠ°: Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²
using NS::print; // ok: Π² ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ using ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠΌΠ΅Π½Π°
ΠΠΎΠ³Π΄Π° ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅ΠΊΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ Π½Π°ΡΡΡΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½. ΠΠ΅Π΄Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ, Π°Π²ΡΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠΌΠ΅Π» Π½Π° ΡΠΎ Π²Π΅ΡΠΎΠΌΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ. Π Π°Π·ΡΠ΅ΡΠΈΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ (Π½ΠΎ Π½Π΅ Π²ΡΠ΅) ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· Π½Π°Π±ΠΎΡΠ° ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΠΉ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ using, ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°ΡΡ Π»ΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΠΈΡ ΡΡ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, ΡΡΠΈ ΠΈΠΌΠ΅Π½Π° ΡΠΊΡΡΠ²Π°ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using Π²Π²ΠΎΠ΄ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ΅ΠΌ ΠΆΠ΅ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ using ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΡΡΡ.
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ usingΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° using ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΡΠ»Π΅Π½Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ Π² ΠΎΠΊΡΡΠΆΠ°ΡΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. ΠΡΠ»ΠΈ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
namespace libs_R_us {
extern void print(int);
extern void print(double);
}
// ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅
void print(const std::string &);
// Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° using Π΄ΠΎΠ±Π°Π²ΠΈΠ»Π° ΠΈΠΌΠ΅Π½Π° Π² Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π°
// ΡΡΠ½ΠΊΡΠΈΠΈ print():
using namespace libs_R_us;
// ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ°ΠΌΠΈ Π½Π° Π²ΡΠ·ΠΎΠ² print() Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΡΡΡΡ:
// print(int) from libs_R_us
// print(double) from libs_R_us
// print(const std::string &) declared explicitly
void fooBar(int ival) {
print("Value: "); // Π²ΡΠ·ΠΎΠ² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ print(const string &)
print(ival); // Π²ΡΠ·ΠΎΠ² libs_R_us::print(int)
}
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ using, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ, Π΅ΡΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° using ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΈ Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΠΎΠ½ΡΠ»ΠΈΠΊΡΠ°ΠΌ, Π²ΡΠ·Π²Π°Π½Π½ΡΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΠΌΠΈ using, Π½Π΅ Π±ΡΠ΄Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π±Π΅Π· ΡΡΠΎΡΠ½Π΅Π½ΠΈΡ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π»ΠΈ ΠΎΠ½Π° ΠΊ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Ρ ΠΈΠΌΠ΅Π½ ΠΈΠ»ΠΈ ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΠΏΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°Ρ usingΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ² using, ΡΠ°ΡΡΡΡ Π½Π°Π±ΠΎΡΠ° ΡΡΠ½ΠΊΡΠΈΠΉ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ² ΡΡΠ°Π½ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ· ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½.
namespace AW {
int print(int);
}
namespace Primer {
double print(double);
}
// Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ using ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
// ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ² ΠΈΠΌΠ΅Π½
using namespace AW;
using namespace Primer;
long double print(long double);
int main() {
print(1); // Π²ΡΠ·ΠΎΠ² AW::print(int)
print(3.1); // Π²ΡΠ·ΠΎΠ² Primer::print(double)
return 0;
}
ΠΠ°Π±ΠΎΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ print() Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ print(int), print(double) ΠΈ print(long double). ΠΡΠ΅ ΠΎΠ½ΠΈ ΡΠΎΡΡΠ°Π²ΡΡ Π½Π°Π±ΠΎΡ ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ, ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ print() Π² ΡΡΠ½ΠΊΡΠΈΠΈ main(), Π΄Π°ΠΆΠ΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈΠΌΠ΅Π½.
Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° 18.2.4Π£ΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠ΅ 18.20. Π‘ ΡΡΠ΅ΡΠΎΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΊΠ°ΠΆΠΈΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΉ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ compute(). ΠΠ΅ΡΠ΅ΡΠΈΡΠ»ΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΡ ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΠΊΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΡΠΈΠΏΠΎΠ² (Π΅ΡΠ»ΠΈ Π΅ΡΡΡ) Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΎΡΠ½ΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°Π» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ?
namespace primerLib {
void compute();
void compute(const void *);
}
using primerLib::compute;
void compute(int);
void compute(double, double = 3.4);
void compute(char*, char* = 0);
void f() {
compute(0);
}
Π§ΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ using Π±ΡΠ΄ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΡΡΠ½ΠΊΡΠΈΠΈ main() ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ compute()? ΠΡΠ²Π΅ΡΡΡΠ΅ Π½Π° ΡΠ΅ ΠΆΠ΅ Π²ΠΎΠΏΡΠΎΡΡ, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΈ.
18.3. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ (multiple inheritance) β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ»Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 15.2.2). ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠ΅Ρ ΡΠ²ΠΎΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ². ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΊΠ°ΠΊ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΊ ΠΈ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΈΠ· ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°. ΠΠΈΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π½Π° ΡΠ°Π·Π½ΡΡ ΡΡΠΎΠ²Π½ΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. ΠΡΡΡ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΡΠ΅, ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΠ΅Π΅ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½Π°ΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Ling-ling (ΠΠΈΠ½Π³-Π»ΠΈΠ½Π³), Mowgli (ΠΠ°ΡΠ³Π»ΠΈ) ΠΈ Balou (ΠΠ°Π»Ρ). ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½Π΅ΡΡΠΈ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ; ΠΠΈΠ½Π³-Π»ΠΈΠ½Π³, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎ Π³ΠΈΠ³Π°Π½ΡΡΠΊΠ°Ρ ΠΏΠ°Π½Π΄Π°. ΠΠΈΠ΄Ρ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π°ΠΌ. ΠΠΈΠ³Π°Π½ΡΡΠΊΠ°Ρ ΠΏΠ°Π½Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Ρ ΠΌΠ΅Π΄Π²Π΅Π΄Π΅ΠΉ, Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π½ΠΎΠΌ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° ΠΆΠΈΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΌΠΈΡΠ°.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ»Π°ΡΡ ZooAnimal ΠΊΠ°ΠΊ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΉ, ΠΏΡΠΈΠ·Π²Π°Π½Π½ΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. ΠΠ»Π°ΡΡ Bear (ΠΠ΅Π΄Π²Π΅Π΄Ρ) Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° ΠΌΠ΅Π΄Π²Π΅Π΄Π΅ΠΉ, ΠΈ Ρ.Π΄.
ΠΡΠΎΠΌΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ , Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΆΠΈΠ²ΠΎΡΠ½ΡΡ , ΠΏΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΠΈΡ ΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ. Π Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠ»Π°ΡΡ Panda (ΠΠ°Π½Π΄Π°) Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΎΠ² Bear ΠΈ Endangered (ΠΠΎΠ΄Π²Π΅ΡΠ³Π°ΡΡΠΈΠΉΡΡ ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ).
18.3.1. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅
Π‘ΠΏΠΈΡΠΎΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²:
class Bear : public ZooAnimal { /* ... */ };
class Panda : public Bear, public Endangered { /* ... */ };
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π΅ΡΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 15.5). ΠΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ private (Π·Π°ΠΊΡΡΡΡΠΉ), Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ class, ΠΈ public (ΠΎΡΠΊΡΡΡΡΠΉ), Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ struct (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 15.5).
ΠΠ°ΠΊ ΠΈ ΠΏΡΠΈ ΠΎΠ΄ΠΈΠ½ΠΎΡΠ½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠΏΠΈΡΠΎΠΊ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΊΠ»Π°ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΈ Π½Π΅ Π±ΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΊΠ°ΠΊ final (ΡΠΌ. ΡΠ°Π·Π΄Π΅Π» 15.2.2). Π―Π·ΡΠΊ Π‘++ Π½Π΅ Π½Π°Π»Π°Π³Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π±Π°Π·ΠΎΠ²ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΉ ΠΊΠ»Π°ΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.