ΠΠ° ΡΡΠΆΠ΅Ρ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ»ΠΎ ΠΌΠΎΠ΅ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΠ΅ Π‘ΠΠ Π² DevelopMentor Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π»Π΅Ρ. ΠΡΠΎΡ ΡΡΠΆΠ΅Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π»ΡΡ ΡΡΡΠ΄Π΅Π½ΡΠ°ΠΌΠΈ Π² ΡΠΎΠΉ ΠΆΠ΅ ΠΌΠ΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠΈΠΌΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ-ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°ΡΠ΅Π»ΡΠΌΠΈ. Π― ΠΌΠΎΠ³ Π±Ρ ΠΏΠΎΠ±Π»Π°Π³ΠΎΠ΄Π°ΡΠΈΡΡ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΡΡΠ΄Π΅Π½ΡΠ°. ΠΠ΄Π΄ΠΈΡΠΎΠ½ Π£ΡΡΠ»ΠΈ (Addison Wesley) ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ» Π°Π²ΡΠΎΡΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π΄Π²Π°Π΄ΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ, Ρ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½ΡΠ½Π΅ΡΠ½ΠΈΠΉ ΡΠΎΡΡΠ°Π² DevelopMentor, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³ ΠΌΠ½Π΅ ΠΎΡΡΠΎΡΠΈΡΡ ΠΌΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Essential Π‘ΠΠ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ ΠΏΡΠ΅ΠΏΠΎΠ΄Π°Π²Π°Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΠΊΡΡΡΠ° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π±Π΅ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: Π ΠΎΠ½Π° Π‘ΡΠΌΠΈΠ΄Ρ (Ron Sumida), Π€ΡΠΈΡΠ° ΠΠ½ΠΈΠΎΠ½Π° (Fritz Onion), Π‘ΠΊΠΎΡΡΠ° ΠΠ°ΡΠ»Π΅ΡΠ° (Scott Butler), ΠΡΡΠ½Π° Π’ΠΎΠ»ΠΌΠ°Π½Π° (Owen Tallman), ΠΠΆΠΎΡΠ΄ΠΆΠ° Π¨Π΅ΡΠ΅ΡΠ΄Π° (George Shepherd), Π’ΡΠ΄Π° ΠΡΡΡΠΈΡΠΎΠ½Π° (Ted Pattison), ΠΠ΅ΠΉΡ ΠΡΠ°ΡΠ½ (Keith Brown), Π’ΠΈΠΌΠ° ΠΠ²Π°Π»Π΄Π° (Tim Ewald) ΠΈ ΠΡΠΈΡΠ° Π‘Π΅Π»Π»ΡΠ° (Chris Sells). Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π²Π°ΠΌ, ΡΠ΅Π±ΡΡΠ°! ΠΠΎΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΠ°ΠΉΠΊΡ ΠΠ±Π΅ΡΠΊΡΠΎΠΌΠ±ΠΈ (Mike Abercrombie) ΠΈΠ· DevelopMentor Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, Π³Π΄Π΅ Π½Π°ΡΡΠ½ΡΠΉ ΡΠΎΡΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° Π½Π΅ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π»ΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΠ΅ΠΉ.
ΠΠ½ΠΈΠ³Π° ΠΌΠΎΠ³Π»Π° Π±Ρ Π²ΡΠΉΡΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π½ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π΅ Π’Π΅ΡΡΠΈ ΠΠ΅Π½Π½Π΅Π΄ΠΈ (Terry Kennedy) ΠΈ Π΅Π³ΠΎ Π΄ΡΡΠ·ΡΡ ΠΈΠ· Software AG. Π’Π΅ΡΡΠΈ Π±ΡΠ» Π²Π΅ΡΡΠΌΠ° Π»ΡΠ±Π΅Π·Π΅Π½, ΠΏΡΠΈΠ³Π»Π°ΡΠΈΠ² ΠΌΠ΅Π½Ρ Π² ΠΠ΅ΡΠΌΠ°Π½ΠΈΡ ΠΏΠΎΠΌΠΎΡΡ ΠΈΠΌ Ρ ΡΠ°Π±ΠΎΡΠΎΠΉ ΠΏΠΎ DCOM/UNIX ΠΊΠ°ΠΊ ΡΠ°Π· Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π³ΠΎΠ΄ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΏΡΡΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π²ΡΡΠ²Π°Π» ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ. Π₯ΠΎΡΡ ΠΊΠ½ΠΈΠ³Π° ΠΈ Π²ΡΡΠ»Π° Π³ΠΎΠ΄ΠΎΠΌ ΠΏΠΎΠ·ΠΆΠ΅ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Ρ Π½Π΅ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°ΡΡ Π’Π΅ΡΡΠΈ Β«Π½Π΅ΡΒ» (ΡΡΠΎ ΠΌΠΎΡ Π²ΠΈΠ½Π°, Π° Π½Π΅ Π’Π΅ΡΡΠΈ), Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠ½ΠΈΠ³Π° ΠΏΠΎΠ»ΡΡΠΈΠ»Π°ΡΡ Π½Π΅ΡΡΠ°Π²Π½Π΅Π½Π½ΠΎ Π»ΡΡΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Ρ ΠΏΡΠΎΠ²Π΅Π» Π·Π° ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΈΠ»ΠΈΠ» ΡΠ²ΠΎΡ ΠΈΠ½ΡΡΠΈΡΠΈΡ, ΡΠ°Π±ΠΎΡΠ°Ρ Ρ Π₯Π°ΡΠ°Π»Π΄ΠΎΠΌ Π‘ΡΠΈΠ»ΠΎΠΌ (Harald Stiehl), ΠΠΈΠ½Π½ΠΈ Π€ΡΠΎΠ»ΠΈΡ (Winnie Froehlich), Π€ΠΎΠ»ΠΊΠ΅ΡΠΎΠΌ ΠΠ΅Π½ΠΊΡ Π°ΡΠ·ΠΎΠΌ (Volker Denkhaus), ΠΠΈΡΠΌΠ°ΡΠΎΠΌ ΠΡΡΠ½Π΅ΡΠΎΠΌ (Deitmar Gaeitner), ΠΠΆΠ΅ΡΡΠΎΠΌ ΠΠΈ (Jeff Lee), ΠΠ΅ΠΉΡΠ΅ΡΠΎΠΌ ΠΠ΅ΡΠ»Π΅ΡΠΎΠΌ (Deiter Kesler), ΠΠ°ΡΡΠΈΠ½ΠΎΠΌ ΠΠΎΡ ΠΎΠΌ (Martin Koch), ΠΠ»Π°ΡΡΡΠΎΠΌ ΠΡΡΠΎΠΌ (Blauer Aff), Π£Π»ΠΈ ΠΠ΅ΡΡΠΎΠΌ (Uli Kaess), Π‘ΡΠΈΠ²ΠΎΠΌ Π£Π°ΠΉΠ»Π΄ΠΎΠΌ (Steve Wild) ΠΈ ΠΏΡΠΎΡΠ»Π°Π²Π»Π΅Π½Π½ΡΠΌ Π’ΠΎΠΌΠ°ΡΠΎΠΌ ΠΠΎΠ³Π»Π΅ΡΠΎΠΌ (Thomas Vogler).
ΠΡΠΎΠ±ΡΠ΅ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΈΡΠ°ΡΠ΅Π»ΡΠΌ, Π½Π°ΡΠ΅Π΄ΡΠΈΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΏΡΠ΅ΠΆΠ½ΠΈΡ ΠΈΠ·Π΄Π°Π½ΠΈΡΡ ΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ: Π’ΡΠ΄Ρ ΠΠ΅ΡΡΡ (Ted Neff), ΠΡΠ½Ρ ΠΠΎΠΉΠ΅ΡΡ (Dan Moyer), ΠΡΡΡΡΡ Π ΡΠ΄ΡΠ΅ΠΊΡΠ°Π»Π΅ (Purush Rudrakshala), Π₯Π΅Π½Π³Ρ Π΄Π΅ ΠΠΎΠ½Π΅Π½Π³Ρ (Heng de Koneng), ΠΡΠΉΠ²Ρ Π₯ΡΠΉΠ»Ρ (Dave Hale), ΠΠΆΠΎΡΠ΄ΠΆΡ Π Π΅ΠΉΠ»ΠΈ (George Reilly), Π‘ΡΠΈΠ²Ρ ΠΠ΅-ΠΠ°ΡΡΡΡΡ (Steve DeLassus), Π£ΠΎΡΡΠ΅Π½Ρ Π―Π½Π³Ρ (Warren Young), ΠΠΆΠ΅ΡΡΡ ΠΡΠΎΡΠ°ΠΉΠ·Ρ (Jeff Prosise), Π ΠΈΡΠ°ΡΠ΄Ρ ΠΡΠ°ΠΉΠΌΡΡ (Richard Grimes), ΠΡΡΡΠΈ ΠΠ»ΡΠ²Π΅Π½ΡΡ (Barry Klawans), ΠΠΆΠ΅ΠΉΠΌΡΡ ΠΠ°ΡΠΌΠ΅ΡΡ (James Bowmer), Π‘ΡΠ΅ΡΠ°Π½Ρ Π‘Π°ΡΡ (Stephan Sas), ΠΠ΅ΡΠ΅ΡΡ ΠΠ°Π±ΠΎΡΡΠΊΠΈ (Peter Zaborski), ΠΡΠΈΡΡΠΎΡΠ΅ΡΡ Π. ΠΠΊΠ΅ΡΠ»ΠΈ (Christopher L. Akerley), Π ΠΎΠ±Π΅ΡΡΡ ΠΡΡΠΊΡΡ (Robert Brooks), ΠΠΆΠΎΠ½Π°ΡΠ°Π½Ρ ΠΡΠ°ΠΉΠ΅ΡΡ (Jonathan Prior), ΠΠ»Π»Π΅Π½Ρ Π§Π°ΠΌΠ±Π΅ΡΡΡ (Alien Chambers), Π’ΠΈΠΌΠΎ ΠΠ΅ΡΡΡΠ½Π΅Π½Ρ (Timo Kettunen), ΠΡΡΠ»ΡΡ ΠΠΎΠΈΠ΄Π΅ΠΊΠ°ΡΡ (Atulx Mohidekar), ΠΡΠΈΡΡ Π₯ΠΈΠ°ΠΌΡΡ (Chris Hyams), ΠΠ°ΠΊΡΡ Π ΡΠ±ΠΈΠ½ΡΡΠ΅ΠΉΠ½Ρ (ΠΠ°Ρ Rubinstein), ΠΡΡΠ΄ΠΈ Π₯ΠΎΠΉΠ·ΠΈΠ½Π³Π΅ΡΡ (Bradey Honsinger), Π‘Π°Π½Π½ΠΈ Π’ΠΎΠΌΠ°ΡΡ (Sunny Thomas), ΠΠ°ΡΠ΄Π½Π΅ΡΡ ΡΠΎΠ½ Π₯ΠΎΠ»ΡΡ (Gardner von Holt) ΠΈ Π’ΠΎΠ½ΠΈ ΠΠ΅ΡΠ²ΠΈΠ»ΠΎΡΡ (Tony Vervilos).
Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π¨Π°Ρ Ρ ΠΠΆΠ΅Ρ Π°Π½Ρ (Shah Jehan) ΠΈ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠΈ Β«Coca-ColaΒ» Π·Π° Π·Π°ΠΏΡΠ°Π²ΠΊΡ ΡΡΠΎΠΉ Π·Π°ΡΠ΅ΠΈ Π³ΠΎΡΡΡΠΈΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠ΅Π²ΠΎΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Π΄ΠΈΠΉΡΠΊΠΎΠΉ ΠΏΠΈΡΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π±Π΅Π·Π°Π»ΠΊΠΎΠ³ΠΎΠ»ΡΠ½ΡΡ Π½Π°ΠΏΠΈΡΠΊΠΎΠ².
ΠΠΎΠ½ ΠΠΎΠΊΡ
Redondo Beach, CA
ΠΠ²Π³ΡΡΡ 1997 Π³ΠΎΠ΄Π°
http://www.develop.com/dbox
ΠΡ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²Π°
ΠΡΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π΅ ΡΡΠΎΠΉ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΌΡ ΠΏΠΎΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΡΠΉ Π°Π²ΡΠΎΡΡΠΊΠΈΠΉ ΡΡΠΈΠ»Ρ, Π½Π΅ ΠΏΠΎΡΠ΅ΡΡΠ² ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΎΡΡΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄Π°Π»ΠΎΡΡ, ΡΡΠ΄ΠΈΡΡ ΡΠΈΡΠ°ΡΠ΅Π»Ρ.
Π Π΅Π΄Π°ΠΊΡΠΈΡ Π²ΡΡΠ°ΠΆΠ°Π΅Ρ ΠΎΡΠΎΠ±ΡΡ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΡ ΠΠ»Π΅Π½Π΅ Π€ΠΈΠ»ΠΈΠΏΠΏΠΎΠ²ΠΎΠΉ, ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° Β«ΠΠΎΡΠΎΠ»Π΅Π²ΡΡΠ²ΠΎ DelphiΒ» ( http://delphi.vitpc.com ), ΠΈ ΠΡΡΠ΅ΠΌΡ ΠΡΡΠ΅ΠΌΡΠ΅Π²Ρ, Π²Π΅Π΄ΡΡΠ΅ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΡΠΈΡΠΌΡ Data Art, Π·Π° ΠΊΠΎΠ½ΡΡΠ»ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠ½ΠΈΠ³ Π΄Π»Ρ ΠΈΠ·Π΄Π°Π½ΠΈΡ.
ΠΠ°ΡΠΈ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΎΠΏΡΠΎΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠΉ ΠΏΠΎΡΡΡ [email protected] (ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Β«ΠΠΈΡΠ΅ΡΒ», ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡ).
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°Π΄Ρ ΡΠ·Π½Π°ΡΡ Π²Π°ΡΠ΅ ΠΌΠ½Π΅Π½ΠΈΠ΅!
ΠΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π°ΡΠΈΡ ΠΊΠ½ΠΈΠ³Π°Ρ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π½Π° Web-ΡΠ°ΠΉΡΠ΅ ΠΈΠ·Π΄Π°ΡΠ΅Π»ΡΡΡΠ²Π° http://www.piter.com .
ΠΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ΅ΠΊΡΡΡ, ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π² ΠΊΠ½ΠΈΠ³Π΅, Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.piter.com/download
ΠΠ»Π°Π²Π° 1. Π‘ΠΠ ΠΊΠ°ΠΊ ΡΠ»ΡΡΡΠ΅Π½Π½ΡΠΉ C++
template <class Π’, class Ex>
class listt: virtual protected CPrivateAlloc {
list<T**> mlist;
mutable TWnd mwnd;
virtual ~listt(void);
protected:
explicit listt(int nElems, β¦);
inline operator unsigned int *(void) const
{ return reinterpretcast <int*>(this) ; }
template <class X> void clear(X& rx) const throw(Ex);
};
ΠΠ½ΠΎΠ½ΠΈΠΌ, 1996C++ ΡΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Ρ Π½Π°ΠΌΠΈ. Π‘ΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π° C++ Π²Π΅ΡΡΠΌΠ° ΠΎΠ±ΡΠΈΡΠ½ΠΎ, ΠΈ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΈΠ· Π½ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ Π·Π½Π°ΡΡ ΠΎ Π·Π°ΠΏΠ°Π΄Π½ΡΡ ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ΄Π½ΡΡ ΠΊΠ°ΠΌΠ½ΡΡ ΡΠ·ΡΠΊΠ°. Π―Π·ΡΠΊ C++ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π²ΡΡΠΎΠΊΠΎ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅, ΡΠ°Π±ΠΎΡΠ°Ρ Π² Bell Laboratories, Π²ΡΠΏΡΡΡΠΈΠ»ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡ C++ (CFRONT), Π½ΠΎ ΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±ΠΎΡ ΠΎ C++. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠ°Π²ΠΈΠ» ΡΠ·ΡΠΊΠ° C++ Π±ΡΠ»ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ 1980-Ρ ΠΈ Π½Π°ΡΠ°Π»Π΅ 1990-Ρ Π³ΠΎΠ΄ΠΎΠ². Π ΡΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ C++ (Π²ΠΊΠ»ΡΡΠ°Ρ Π°Π²ΡΠΎΡΠΎΠ² ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠΎ C++) ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ UNIX ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ ΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π―ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΠ΅Π΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΡΡΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², Π±ΡΠ»Π° Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΠΎΠ·Π΄Π°Π½Π° ΡΠΌΠ°ΠΌΠΈ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π° C++.
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· Π³Π»Π°Π²Π½ΡΡ ΡΠ΅Π»Π΅ΠΉ ΡΠ·ΡΠΊΠ° C++ ΡΠ²Π»ΡΠ»ΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°ΠΌ ΡΡΡΠΎΠΈΡΡ ΡΠΈΠΏΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ (user-defined types β UDTs), ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π°ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π½Π΅ ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. ΠΡΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π»Π΅Π³ Π² ΠΎΡΠ½ΠΎΠ²Ρ ΠΈΠ΄Π΅ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΈΠ»ΠΈ ΡΡΡΡΠΊΡΡΡ, ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΈΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. Π‘ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ C++ ΡΡΠ½ΠΎΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΊΠ»Π°ΡΡΠΎΠ² C++ ΡΠ°ΡΡΠΈΡΡΠ»ΡΡ, Ρ ΠΎΡΡ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΠΎΠ³ΠΎ. ΡΡΠΎ ΡΡΠΎΡ ΡΡΠ½ΠΎΠΊ ΡΠΎΡ Π½Π΅ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ, Π±ΡΠ» NIH-ΡΠ°ΠΊΡΠΎΡ (not invented here β Β«ΠΈΠ·ΠΎΠ±ΡΠ΅ΡΠ΅Π½ Π½Π΅ Π·Π΄Π΅ΡΡΒ») ΡΡΠ΅Π΄ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² C++. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Π΄ΡΡΠ³ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΄Π½ΡΠΌ, ΡΠ΅ΠΌ Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π½Π°ΡΠ°Π±ΠΎΡΠΎΠΊ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΈΡΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌΠ΅ΡΠΈΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π Π΄ΡΡΠ³ΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΡΠΎΠΏΡΠΎΡΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΆΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠΈΡΡΠ΅ΠΊΠ°Π΅Ρ ΠΈΠ· Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎΡΡΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΌΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠΈΠ»ΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΡΠΆΠΎΠΉ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π΅ΡΠ½ΠΎ Π΄Π»Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ-ΠΎΠ±Π΅ΡΡΠΎΠΊ (wrappers), ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΎ, Π½ΠΎ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΡΡΠ³Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°: ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠΌ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ Π΄Π°Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ°ΠΊ ΠΊ ΡΡΠ°Π»ΠΎΠ½Ρ. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Β«Π±Π΅Π»ΠΎΠ³ΠΎ ΡΡΠΈΠΊΠ°Β» ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΡΠΎ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠΈΠ»ΠΈΠ²Π°Π΅Ρ Π½Π΅ΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΡΠ΅ΠΊΡ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ ΠΎΡΠ»Π°Π±Π»ΡΠ΅Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ Π°Π΄Π°ΠΏΡΠ°ΡΠΈΡ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ±ΡΠΆΠ΄Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΠΊΠ°ΠΊ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΡΡΠ΅ΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° Π½Π΅ ΠΊΠ°ΠΊ ΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΡΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΠΎΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π½ΡΠΆΠ΄Ρ, Π²ΡΠΏΡΡΠΊΠ°Ρ Β«ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π»ΡΡΡΠ΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»Π΅Π½Π° ΠΊ Π΄Π°Π½Π½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ, Π½ΠΎ ΡΠΆΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΎΠΉ.
ΠΠΎΠ²ΡΠΎΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ (reuse) ΠΊΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΌΠΎΡΠΈΠ²Π°ΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ² C++, ΠΏΡΠΎΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΠ°ΠΊΠΈΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠ°ΠΊ ΡΡΠ°ΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (design-time) ΠΈ ΡΡΠ°ΠΏ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ (development-time), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ ΡΠ°ΡΡΡΡ ΠΊΡΠ»ΡΡΡΡΡ C++, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (runtime), ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ C++ Π΄Π°Π»Π΅ΠΊΠΎΠΉ ΠΎΡ ΠΈΠ΄Π΅Π°Π»Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΠΉ ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½Ρ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠΈ, ΠΏΡΠΈΠ½ΡΡΠΎΠΉ Π² C++. ΠΠ°Π½Π½Π°Ρ Π³Π»Π°Π²Π° Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² C++ ΠΊ Π²ΠΈΠ΄Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π±ΡΠ΄ΡΡ ΡΠ΅ΡΠ°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·ΠΈΡΡΡΡΡΡ Π½Π° Π³ΠΎΡΠΎΠ²ΡΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ (off-the-shelf) ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΡ . Π ΡΡΠΎΠΉ Π³Π»Π°Π²Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ, ΠΏΡΠΈΠΌΠ΅Π½ΡΡ ΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ»Π° Π±Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ· Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ².
Π Π°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ ΡΠ·ΡΠΊ Π‘++
ΠΠ»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ C++ ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ»ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ C++ Π² ΠΊΠΎΠ½ΡΠ΅ 1980-Ρ Π³ΠΎΠ΄ΠΎΠ². ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΡΠ΅Π±Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ·Π΄Π°Π» Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΠ΄ΡΡΡΠΎΠΊ Π·Π° Π²ΡΠ΅ΠΌΡ O(1) (ΡΠΎ Π΅ΡΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, Π° Π½Π΅ ΠΏΡΠΎΠΏΠΎΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ Π΄Π»ΠΈΠ½Π΅ ΡΡΡΠΎΠΊΠΈ). ΠΡΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½Π΅ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½Π°Ρ Π·Π°Π΄Π°ΡΠ°. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠ»Π°ΡΡ ΡΡΡΠΎΠΊ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ (fast text strings) Π² Π»ΡΠ±ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ°:
// faststring.h
class FastString
{
char *mpsz;
public:
FastString(const char *psz);