Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ программирования Π½Π° Π‘++. 101 ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈ рСкомСндация». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 56

Автор Π“Π΅Ρ€Π± Π‘Π°Ρ‚Ρ‚Π΅Ρ€

Π Π°Π·ΠΌΠ΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ указатСля Π½Π° Derived ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° Base компилятор Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ слСдуСт ΠΏΠΎΠ΄ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ (ΠΏΡ€ΠΈ нСобходимости) ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ достаточноС количСство ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΠ±ΠΎΠΈΡ… классах. Однако ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½Π°Π΄ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ p Π½Π° Base компилятор вычисляСт p[n] ΠΊΠ°ΠΊ *(p+n*sizeof(Base)), Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ полагаясь Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, находящиСся Π² памяти, β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ‚ΠΈΠΏΠ° Base, Π° Π½Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚Π΅, какая Π΅Ρ€ΡƒΠ½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Derived, Ссли Π²Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ этого массива Π² ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ‚ΠΈΠΏΠ° Base* (Ρ‡Ρ‚ΠΎ компилятор Π²ΠΏΠΎΠ»Π½Π΅ допускаСт), Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ этому ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ (Ρ‡Ρ‚ΠΎ компилятор Ρ‚Π°ΠΊΠΆΠ΅ пропустит, Π½Π΅ ΠΌΠΎΡ€Π³Π½ΡƒΠ² Π³Π»Π°Π·ΠΎΠΌ)!

Π’Π°ΠΊΠΈΠ΅ нСприятности ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ взаимодСйствия Π΄Π²ΡƒΡ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ β€” замСнимости ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΉ класс указатСлями Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс, ΠΈ унаслСдованной ΠΎΡ‚ Π‘ Π°Ρ€ΠΈΡ„ΠΌΠ΅Ρ‚ΠΈΠΊΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, которая считаСт ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΎΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΌΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ вычислСниях Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

Для хранСния массива ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ массив (Π° Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅ β€” ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€; см. Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ 77) ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΅Ρ‰Π΅ Π»ΡƒΡ‡ΡˆΠ΅, ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ shared_ptr; см. Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ 79). Π’ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ массива ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, скорСС всСго, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² динамичСски Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ памяти. (Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ интСрфСйс ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π²Π°ΠΌ Π½Π°Π΄ΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь массив ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΠΈΠΌΠΎΡ€Ρ„Π½Ρ‹ΠΉ интСрфСйс для выполнСния ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ.)

ΠšΡΡ‚Π°Ρ‚ΠΈ, ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² интСрфСйсах слСдуСт ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ссылки указатСлям, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅, Π° Π½Π΅ ΠΎ массивС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Бсылки

[C++TR104] β€’ [Dewhurst03] Β§33, Β§89 β€’ [Sutter00] Β§36 β€’ [Meyers96] Β§3

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: для удобства Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»Π΅ΠΉ вСсь список Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ доступСн ΠΏΠΎ адрСсу http://www.gotw.ca/publications/c++cs/bibliography.htm

Бсылки, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡƒΠΆΠΈΡ€Π½Ρ‹ΠΌ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, [Abrahams96]), ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой гипСрссылки Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ страницС.

[Abelson96] Abelson H. and Sussman G. J. Structure and Interpretation of Computer Programs (2nd Edition) (MIT Press, 1996).

[Abrahams96] Abrahams D. Exception Safety in STLport. STLport website, 1996.

[Abrahams01a] Abrahams D. Exception Safety in Generic Components, in Jazayeri M., Loos R., Musser D. (eds.), Generic Programming: International Seminar on Generic Programming, Dagstuhl Castle, Germany, April/May 1998, Selected Papers. Lecture Notes in Computer Science 1766 (Springer, 2001).

[Abrahams01b] Abrahams D. Error and Exception Handling. [Boost] website, 2001.

[Alexandrescu00a] Alexandrescu A. Traits: The else-if-then of Types. Π‘++ Report, 12(4), April 2000.

[Alexandrescu00b] Alexandrescu A. Traits on Steroids. Π‘++ Report, 12(6), June 2000.

[Alexandrescu00c] Alexandrescu A. and Marginean P. Change the Way You Write Exception-Safe Code β€” Forever. C/C++ Users Journal, 18(12), December 2000.

[Alexandrescu01] Alexandrescu A. Modern Π‘++ Design. Addison-Wesley, 2001.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: АлСксандрСску А. Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π‘++. БСрия Π‘++ In-Depth, Ρ‚.3. β€” М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "Π’ΠΈΠ»ΡŒΡΠΌΡ", 2002.

[Alexandrescu01a] Alexandrescu A. A Policy-Based basic_string Implementation. C/C++ Users Journal, 19(6), June 2001.

[Alexandrescu02a] Alexandrescu A. Multithreading and the Π‘++ Type System. InformIT website, February 2002.

[Alexandrescu02b] Alexandrescu A. "Discriminated Unions (I)," "... (II)," and "... (III)". C/C++ Users Journal, 20(4,6,8), April/June/August 2002.

[Alexandrescu03a] Alexandrescu A. Move Constructors. C/C++ Users Journal, 21(2), February 2003.

[Alexandrescu03b] Alexandrescu A. Assertions. C/C++ Users Journal, 21(4), April 2003.

[Alexandrescu03c] Alexandrescu A. and Marginean P. Enforcements. C/C++ Users Journal, 21(6), June 2003.

[Alexandrescu03d] Alexandrescu A. and Held D. Smart Pointers Reloaded. C/C++ Users Journal, 21(10), October 2003.

[Alexandrescu04] Alexandrescu A. Lock-Free Data Structures. C/C++ Users Journal, 22(10), October 2004.

[Allison98] Allison Π‘. Π‘ & Π‘++ Code Capsules. Prentice Hall, 1998.

[Austern99] Austern M. H. Generic Programming and the STL. Addison-Wesley, 1999.

[Barton94] Barton J. and Nackman L. Scientific and Engineering Π‘++. Addison-Wesley, 1994.

[Bentley00] Bentley J. Programming Pearls (2nd Edition). Addison-Wesley, 2000.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: Π‘Π΅Π½Ρ‚Π»ΠΈ Π”ΠΆ. Π–Π΅ΠΌΡ‡ΡƒΠΆΠΈΠ½Ρ‹ программирования. Π’Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅. β€” БПб.: ΠŸΠΈΡ‚Π΅Ρ€, 2002.

[BetterSCM] Web-ΡƒΠ·Π΅Π» Better SCM Initiative.

[Boost] Π‘++ Boost.

[BoostLRG] Boost Library Requirements and Guidelines. (Web-ΡƒΠ·Π΅Π» Boost).

[Brooks95] Brooks F. The Mythical Man-Month. Addison-Wesley, 1975; reprinted with corrections in 1995.

[Butenhof97] Butenhof D. Programming with POSIX Threads. Addison-Wesley, 1997.

[Cargill92] Cargill T. Π‘++ Programming Style. Addison-Wesley, 1992.

[C90] ISO/IEC 9899:1990(E), Programming Languages β€” C (ISO C90 and ANSI C89 Standard).

[C99] ISO/IEC 9899:1999(E), Programming Languages β€” C (revised ISO and ANSI C99 Standard).

[C++98] ISO/IEC 14882:1998(E), Programming Languages β€” Π‘++ (ISO and ANSI Π‘++ Standard).

[C++03] ISO/IEC 14882:2003(E), Programming Languages β€” Π‘++ (updated ISO and ANSI Π‘++ Standard including the contents of [C++98] plus errata corrections).

[C++TR104] ISO/IEC JTC1/SC22/WG21/N1711. (Draft) Technical Report on Standard Library Extensions (ISO Π‘++ committee working document, November 2004). Π‘Π»ΠΈΠ·ΠΊΠΈΠΉ ΠΊ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π‘++, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ shared_ptr.

[Cline99] Cline М., Lomow G., and Girou M. Б++ FAQs (2nd Edition). Addison-Wesley, 1999.

[Constantine95] Constantine L. Constantine on Peopleware. Yourdon Press, 1995.

[Coplien92] Coplien J. Advanced Π‘++ Programming Styles and Idioms. Addison-Wesley, 1992.

[Cormen01] Cormen T., Leiserson C., Rivest R., Stein C. Introduction to Algorithms (2nd Edition). MIT Press, 2001.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: ΠšΠΎΡ€ΠΌΠ΅Π½ T., ЛСйзСрсон Π§., РивСст Π ., Π‘Ρ‚Π΅ΠΉΠ½ К. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹. 2-Π΅ ΠΈΠ·Π΄. β€” М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "Π’ΠΈΠ»ΡŒΡΠΌΡ" (Π² ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ)

[CVS] Web-ΡƒΠ·Π΅Π» CVS.

[Cowan01] Cowan Б., Barringer М., Beattie S., and Kroah-Hartman G. FormatGuard: Automatic Protection From printf Format String Vulnerabilities. Proceedings of the 2001 USENIX Security Symposium, August 2001, Washington, D.C.

[Dewhurst03] Dewhurst S. Π‘++ Gotchas. Addison-Wesley, 2003.

[Dinkumware-Safe] Dinkumware Unabridged Library documentation (Web-ΡƒΠ·Π΅Π» Dinkumware).

[Ellis90] Ellis M. and Stroustrup B. The Annotated Π‘++ Reference Manual. Addison-Wesley, 1990.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: Эллис M., Бтрауструп Π‘. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство ΠΏΠΎ языку программирования Π‘++ с коммСнтариями. β€” М.: ΠœΠΈΡ€, 1992.

[Gamma95] Gamma E., Helm R., Johnson R., and Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: Π“Π°ΠΌΠΌΠ° Π­., Π₯Π΅Π»ΠΌ Π ., ДТонсон Π ., ВлиссидСс Π”ΠΆ. ΠŸΡ€ΠΈΠ΅ΠΌΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ проСктирования. ΠŸΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ проСктирования. β€” БПб.: ΠŸΠΈΡ‚Π΅Ρ€, 2001.

[GnuMake] Gnu make (Web-ΡƒΠ·Π΅Π» Gnu).

[GotW] Sutter H. Guru of the Week column.

[Henney00] Henney K. Π‘++ Patterns: Executing Around Sequences (EuroPLoP 2000 proceedings).

[Henney01] Henney K. Π‘++ Patterns: Reference Accounting (EuroPLoP 2001 proceedings).

[Henney02a] Henney K. Stringing Things Along. Application Development Advisor, July-August 2002.

[Henney02b] Henney K. The Next Best String. Application Development Advisor, October 2002.

[Henricson97] Henricson M. and Nyquist E. Industrial Strength Π‘++. Prentice Hall, 1997.

[Horstmann95] Horstmann C. S. Safe STL., 1995.

[Josuttis99] Josuttis N. The Π‘++ Standard Library. Addison-Wesley, 1999.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: Π”ΠΆΠΎΡΡŒΡŽΡ‚ΠΈΡ Н. Π‘++. Бтандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°. β€” БПб.: ΠŸΠΈΡ‚Π΅Ρ€ (Π² ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ).

[Keffer95] Keffer T. Rogue Wave Π‘++ Design, Implementation, and Style Guide. Rogue Wave Software, 1995.

[Kernighan99] Kernighan B. and Pike R. The Practice of Programming. Addison-Wesley, 1999.

[Knuth89] Knuth D. The Errors of TeX. Software β€” Practice & Experience, 19(7), July 1989.

[Knuth97a] Knuth D. The Art of Computer Programming, Volume I: Fundamental Algorithms, 3rd Edition. Addison-Wesley, 1997.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: ΠšΠ½ΡƒΡ‚ Π”. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования, Ρ‚ΠΎΠΌ 1. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, 3-Π΅ ΠΈΠ·Π΄. β€” М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "Π’ΠΈΠ»ΡŒΡΠΌΡ", 2000.

[Knuth97b] Knuth D. The Art of Computer Programming, Volume 2: Seminumerical Algorithms, 3rd Edition. Addison-Wesley, 1997.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: ΠšΠ½ΡƒΡ‚ Π”. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования, Ρ‚ΠΎΠΌ 2. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹, 3-Π΅ ΠΈΠ·Π΄. β€” М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "Π’ΠΈΠ»ΡŒΡΠΌΡ", 2000.

[Knuth98] Knuth D. The Art of Computer Programming, Volume 3: Sorting and Searching, 2nd Edition. Addison-Wesley, 1998.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄: ΠšΠ½ΡƒΡ‚ Π”. Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования, Ρ‚ΠΎΠΌ 3. Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ поиск, 2-Π΅ ΠΈΠ·Π΄. β€” М.: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄ΠΎΠΌ "Π’ΠΈΠ»ΡŒΡΠΌΡ", 2000.

[Koenig97] Koenig A. and Moo Π’. Ruminations on Π‘++. Addison-Wesley, 1997.

[Lakos96] Lakos J. Large-Scale Π‘++ Software Design. Addison-Wesley, 1996.

[Liskov88] Liskov B. Data Abstraction and Hierarchy. SIGPLAN Notices, 23(5), May 1988.

[Martin96a] Martin R. C. The Dependency Inversion Principle. Π‘++ Report, 8(5), May 1996.

[Martin96b] Martin R. C. Granularity. Π‘++ Report, 8(9), October 1996.

[Martin96c] Martin R. C. The Open-Closed Principle. Π‘++ Report, 8(1), January 1996.

[Martin98] Martin R. C., Riehle D., Buschmann F. (eds.). Pattern Languages of Program Design 3. Addison-Wesley, 1998.

[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.