[Martin00] Martin R. C. Abstract Classes and Pure Virtual Functions in Martin R. C. (ed.), More Π‘++ Gems. Cambridge University Press, 2000.
[McConnell93] McConnell S. Code Complete. Microsoft Press, 1993.
[Metrowerks] Metrowerks.
[Meyer00] Meyer B. Object-Oriented Software Construction, 2nd Edition. Prentice Hall, 2000.
[Meyers96] Meyers S. More Effective Π‘++. Addison-Wesley, 1996.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΠ΅ΠΉΠ΅ΡΡ Π‘. ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘++. 35 Π½ΠΎΠ²ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². β Π.: ΠΠΠ ΠΡΠ΅ΡΡ, 2000.
[Meyers97] Meyers S. Effective Π‘++, 2nd Edition. Addison-Wesley, 1997.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΠ΅ΠΉΠ΅ΡΡ Π‘. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π‘++. 50 ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ². β Π.: ΠΠΠ ΠΡΠ΅ΡΡ, 2000.
[Meyers00] Meyers S. How Non-Member Functions Improve Encapsulation. C/C++ Users Journal, 18(2), February 2000.
[Meyers01] Meyers S. Effective STL. Addison-Wesley, 2001.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΠ΅ΠΉΠ΅ΡΡ Π‘. ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ STL. β Π‘ΠΠ±.: ΠΠΈΡΠ΅Ρ, 2002.
[Meyers04] Meyers S. and Alexandrescu A. Π‘++ and the Perils of Double-Checked Locking, Part 1 and β¦Part 2. Dr. Dobb's Journal, 29(7,8), July and August 2004.
[Milewski01] Milewski B. Π‘++ In Action. Addison-Wesley, 2001.
[Miller56] Miller G. A. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information. The Psychological Review, 1956, vol. 63.
[MozillaCRFAQ] Frequently Asked Questions About mozilla.org's Code Review Process (Web-ΡΠ·Π΅Π» Mozilla).
[Murray93] Murray R. Π‘++ Strategies and Tactics. Addison-Wesley, 1993.
[Musser01] Musser D. R., Derge G. J., and Saini A. STL Tutorial and Reference Guide, 2nd Edition. Addison-Wesley, 2001.
[Parnas02] Parnas D. The Secret History of Information Hiding. Software Pioneers: Contributions To Sofware Engineering, Springer-Verlag, New York, 2002.
[Peters99] Peters T. The Zen of Python. Comp.lang.python, June 1999.
[Piwowarski82] Piwowarski P. A Nesting Level Complexity Measure. ACM SIGPLAN Notices, 9/1982.
[Saks99] Saks D. Thinking Deeply, Thinking Deeper, and Thinking Even Deeper. C/C++ Users Journal, 17(4,5,6), April, May, and June 1999.
[Schmidt01] Schmidt D., Stal M., Rohnert H., Buschmann F. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. Wiley, 2001.
[SeamonkeyCR] Seamonkey Code Reviewer's Guide (Web-ΡΠ·Π΅Π» Mozilla).
[Sedgewick98] Sedgewick R. Algorithms in Π‘++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, 3rd Edition. Addison-Wesley, 1998.
[STLport-Debug] Fomitchev B. STLport: Debug Mode (Web-ΡΠ·Π΅Π» STLport).
[Stroustrup94] Stroustrup B. The Design and Evolution of Π‘++. Addison-Wesley, 1994.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: Π‘ΡΡΠ°ΡΡΡΡΡΠΏ Π. ΠΠΈΠ·Π°ΠΉΠ½ ΠΈ ΡΠ²ΠΎΠ»ΡΡΠΈΡ ΡΠ·ΡΠΊΠ° Π‘++. β Π.: ΠΠΠ ΠΡΠ΅ΡΡ, 2000. [Stroustrup00] Stroustrup Π. The Π‘++ Programming Language (Special 3rd Edition). Addison-Wesley, 2000.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: Π‘ΡΡΠ°ΡΡΡΡΡΠΏ Π. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘++. Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. β Π.: ΠΠΈΠ½ΠΎΠΌ, 2001.
[Sutter99] Sutter H. ACID Programming. Guru of the Week #61.
[Sutter00] Sutter H. Exceptional Π‘++. Addison-Wesley, 2000.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: Π‘Π°ΡΡΠ΅Ρ Π. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ Π½Π° Π‘++. Π‘Π΅ΡΠΈΡ Π‘++ In-Depth, Ρ.4. β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "ΠΠΈΠ»ΡΡΠΌΡ", 2002.
[Sutter02] Sutter H. More Exceptional Π‘++. Addison-Wesley, 2002.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: Π‘Π°ΡΡΠ΅Ρ Π. Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ Π½Π° Π‘++. Π‘Π΅ΡΠΈΡ Π‘++ In-Depth, Ρ.4. β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "ΠΠΈΠ»ΡΡΠΌΡ", 2002.
[Sutter03] Sutter H. Generalizing Observer. C/C++ Users Journal, 21(9), September 2003.
[Sutter04] Sutter H. Exceptional Π‘++ Style. Addison-Wesley, 2004.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: Π‘Π°ΡΡΠ΅Ρ Π. ΠΠΎΠ²ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Π½Π° Π‘++. β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "ΠΠΈΠ»ΡΡΠΌΡ" (Π² ΠΏΠ΅ΡΠ°ΡΠΈ).
[Sutter04a] Sutter H. Function Types. C/C++ Users Journal, 22(7), July 2004.
[Sutter04b] Sutter H. When and How To Use Exceptions. C/C++ Users Journal, 22(8), August 2004.
[Sutter04c] Sutter H. Just Enough' Thread Safety. C/C++ Users Journal, 22(9), September 2004.
[Sutter04d] Sutter H. How to Provide (or Avoid) Points of Customization in Templates. C/C++ Users Journal, 22(11), November 2004.
[SuttHysl01] Sutter H. and Hyslop J. Hungarian wartHogs. C/C++ Users Journal, 19(11), November 2001.
[SuttHysl02] Sutter H. and Hyslop J. A Midsummer Night's Madness. C/C++ Users Journal, 20(8), August 2002.
[SuttHysl03] Sutter H. and Hyslop J. Sharing Causes Contention. C/C++ Users Journal, 21(4),
April 2003.
[SuttHysl04a] Sutter H. and Hyslop J. Getting Abstractions. C/C++ Users Journal, 22(6), June 2004.
[SuttHysl04b] Sutter H. and Hyslop J. Collecting Shared Objects. C/C++ Users Journal, 22(8), August 2004.
[Taligent94] Taligent's Guide to Designing Programs. Addison-Wesley, 1994.
[Tsai01] Tsai T. and Singh N. Libsafe 2.0: Detection of Format String Vulnerability Exploits. Avaya Labs, March 2001.
[Vandevoorde03] Vandevoorde D. and Josuttis N. Π‘++ Templates. Addison-Wesley, 2003.
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄: ΠΠ°Π½Π΄Π΅Π²ΡΡΠ΄ Π., ΠΠΆΠΎΡΠ°ΡΡΠΈΡ Π. Π¨Π°Π±Π»ΠΎΠ½Ρ Π‘++. Π‘ΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. β Π.: ΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "ΠΠΈΠ»ΡΡΠΌΡ", 2003.
[Webber03] Webber Π. Π. Modern Programming Languages: A Practical Introduction. Franklin, Beedle & Associates. 2003.
Π Π΅Π·ΡΠΌΠ΅ ΠΈΠ· ΡΠ΅Π·ΡΠΌΠ΅
0. ΠΠ΅ ΠΌΠ΅Π»ΠΎΡΠΈΡΠ΅ΡΡ, ΠΈΠ»ΠΈ Π§ΡΠΎ Π½Π΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ
Π‘ΠΊΠ°ΠΆΠ΅ΠΌ ΠΊΡΠ°ΡΠΊΠΎ: Π½Π΅ ΠΌΠ΅Π»ΠΎΡΠΈΡΠ΅ΡΡ.
1. ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ Π±Π΅Π· Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠΉ ΠΏΡΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π²Π°ΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π²ΡΠ΅ Π²ΡΠ΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΈ ΡΡΡΡΠ°Π½ΡΡΡ ΠΈΡ ΠΏΡΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, Π° Π½Π΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ²Π½Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ
ΠΠ°ΠΆΠΈΠΌΠ°ΠΉΡΠ΅ Π½Π° ΠΎΠ΄Π½Ρ (Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΡ) ΠΊΠ½ΠΎΠΏΠΊΡ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ("Π² ΠΎΠ΄Π½ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅") ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ Π²Π΅ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ Π±Π΅Π· Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²Π΅ΡΡΠΈΠΉ
ΠΠ°ΠΊ Π³Π»Π°ΡΠΈΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠ°Ρ ΠΏΠΎΡΠ»ΠΎΠ²ΠΈΡΠ°, ΠΏΠ»ΠΎΡ ΠΈΠ΅ ΡΠ΅ΡΠ½ΠΈΠ»Π° Π»ΡΡΡΠ΅ Ρ ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ: ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΠΌΠΈ. ΠΠ΅ ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π±Π΅Π· ΠΏΡΠΈΡΠΌΠΎΡΡΠ° Π½Π° Π΄ΠΎΠ»Π³ΠΈΠΉ ΡΡΠΎΠΊ. ΠΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΈΡ Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π· ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ ΡΠ΅ΡΡΡ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π½Π΅ ΠΏΡΠ΅ΠΏΡΡΡΡΠ²ΡΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
4. ΠΠ΄Π½Π° Π³ΠΎΠ»ΠΎΠ²Π° Ρ ΠΎΡΠΎΡΠΎ, Π° Π΄Π²Π΅ β Π»ΡΡΡΠ΅
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΠΉΡΠ΅ ΠΊΠΎΠ΄ Π²ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π³Π»Π°Π· β ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°. ΠΠΎΠΊΠ°ΠΆΠΈΡΠ΅ Π²Π°Ρ ΠΊΠΎΠ΄ Π΄ΡΡΠ³ΠΈΠΌ ΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ ΠΈΡ ΠΊΠΎΠ΄ΠΎΠΌ β ΡΡΠΎ ΠΏΡΠΈΠ½Π΅ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·Ρ Π²ΡΠ΅ΠΌ.
Π‘ΡΠΈΠ»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ5. ΠΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ β ΠΎΠ΄Π½Π° Π·Π°Π΄Π°ΡΠ°
ΠΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ (ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΠΊΠ»Π°ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠΌΠ΅Π½, ΠΌΠΎΠ΄ΡΠ»Ρ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°) Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅ΡΠ°ΡΡ ΠΎΠ΄Π½Ρ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°ΡΡ. Π‘ ΡΠΎΡΡΠΎΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΈΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΠ½ΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΊΠ»ΠΎΠ½ΡΡΡΡΡ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
6. ΠΠ»Π°Π²Π½ΠΎΠ΅ β ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ, ΠΏΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΡΠ½ΠΎΡΡΡ
ΠΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π»ΡΡΡΠ΅ Π±ΡΡΡΡΠΎΡΡ. ΠΡΠΎΡΡΠΎΡΠ° Π»ΡΡΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ. Π―ΡΠ½ΠΎΡΡΡ Π»ΡΡΡΠ΅ Ρ ΠΈΡΡΠΎΡΠΌΠΈΡ. ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π»ΡΡΡΠ΅ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ (ΡΠΌ. ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ 83 ΠΈ 99).
7. ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΡΡΠ΅ΡΠΎΠΌ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡΠΈ
ΠΡΠ΅Π³Π΄Π° ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ ΡΠΎΡΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄ΡΠΌΠ°ΠΉΡΠ΅ ΠΎΠ± Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Π±Π΅Π· ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΈ, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ Ρ ΡΠΆΠ΅ ΡΠ΅ΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ Π·Π°Π²ΠΈΡΡΡΠ΅Π΅ ΠΎΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΡΡ Π΄Π°Π½Π½ΡΡ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ. ΠΠΎΠ³Π΄Π° ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΠΈΠ·-Π·Π° ΡΠΎΡΡΠ° ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² Π΄Π°Π½Π½ΡΡ , Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ»ΡΡΡΠ°ΡΡ O-ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π° Π½Π΅ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
8. ΠΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
ΠΠ°ΠΊ Π³Π»Π°ΡΠΈΡ ΠΏΠΎΡΠ»ΠΎΠ²ΠΈΡΠ°, Π½Π΅ ΠΏΠΎΠ΄Π³ΠΎΠ½ΡΠΉΡΠ΅ ΡΠΊΠ°ΡΡΡΡΡ Π»ΠΎΡΠ°Π΄Ρ. ΠΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π΅ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° ΠΈ Π±ΡΡΡΡΠΎ Π²Ρ ΠΎΠ΄ΠΈΡ Π² ΠΏΡΠΈΠ²ΡΡΠΊΡ. ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ: Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅. ΠΡΠΎΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠΊΡΠΏΠ΅ΡΡΠΎΠ²): Π½Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. Π‘Π΅ΠΌΡ ΡΠ°Π· ΠΎΡΠΌΠ΅ΡΡ, ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉ.
9. ΠΠ΅ ΠΏΠ΅ΡΡΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ
Π’ΠΎ, ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π΄Π»Ρ Π²Π°Ρ, β ΠΏΡΠΎΡΡΠΎ ΠΈ Π΄Π»Ρ ΠΊΠΎΠ΄Π°. ΠΡΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°Π²Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ β ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±ΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠ΄ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΈΠ΄ΠΈΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ "ΡΡΠ΅ΠΊΠ°ΡΡ Ρ ΠΊΠΎΠ½ΡΠΈΠΊΠΎΠ² Π²Π°ΡΠΈΡ ΠΏΠ°Π»ΡΡΠ΅Π²" ΠΈ Π±ΡΡΡ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ, ΡΠ΅ΠΌ ΠΈΡ ΠΏΠ΅ΡΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ. ΠΡΠΎ Π½Π΅ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ, Π° ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ·Π»ΠΈΡΠ½Π΅ΠΉ ΠΏΠ΅ΡΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
10. ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅
Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΡΠΏΠΎΡΡ ΠΈ ΡΠ°Π·Π΄ΠΎΡΡ. ΠΠ·Π±Π΅Π³Π°ΠΉΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ , Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ . Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈΠ²Π°ΡΡ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΠΎΡΡΠΈ, Π° Π·Π°ΡΠ°ΡΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
11. Π‘ΠΎΠΊΡΡΡΠΈΠ΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
ΠΠ΅ Π²ΡΠΏΡΡΠΊΠ°ΠΉΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ.
12. ΠΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ², ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ², Π³Π΄Π΅ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ (ΡΠΌ. ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ 10), ΠΈ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΠΎΡΡΠ°Π²ΡΠΈΠΌΠΈΡΡ.
13. Π Π΅ΡΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΠΎ Π²Π»Π°Π΄Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ²
ΠΠ΅ ΡΠ°Π±ΠΎΡΠ°ΠΉΡΠ΅ Π²ΡΡΡΠ½ΡΡ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΌΠΎΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΠ΄ΠΈΠΎΠΌΠ° Π‘++ "Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ° Π΅ΡΡΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ" (resource acquisition is initialization β RAII) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ. RAII ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΡΡΠΎΠ³ΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ. ΠΡΠΈ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠ΅ΡΡΡΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ-Π²Π»Π°Π΄Π΅Π»ΡΡΡ. ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΡΠ΄Π΅Π»ΡΠΉΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΡΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.