|
Программирование >> Обобщенные обратные вызовы
Общеизвестно, что basic string имеет слишком много функций-членов. На самом деле из 103 функций basic string только 32 действительно должны быть членами, а 71 можно без потери эффективности сделать обычными функциями, не являющимися друзьями класса. Кроме того, многие из них дуплицируют функциональность имеющихся стандартных алгоритмов, или представляют собой алгоритмы, область применения которых может оказаться более широкой, если отделить их от basic stnng, а не прятать в классе. Не повторяйте ошибок basic string в собственных разработках - отделяйте алгоритмы от контейнеров, используйте специализации шаблонов или перефузку для того, чтобы обеспечить специализированное поведение алгоритмов (как в случае поиска подстрок), следуйте приведенной далее рекомендации - и пользователи скажут вам только спасибо. Так вы существенно уменьшите объем того, что им придется изучить, чтобы пользоваться вашей библиотекой. > Рекомендация Пользуйтесь принципом один класс (функция) - одна задача . Там, где это возможно, лучше использовать обычные функции, которые не являются друзьями класса. Список литературы Примечание: для удобства читателей весь список литературы доступен по адресу http: www.gotw.ca/publi cations/xc++s/bi Ыi ography.htm Ссьшки, выделенные полужирным шрифтом (например, [AlexandrescuOl]), представляют собой гиперссылки в приведенной выше странице. (AlexandrescuOl] [AlexandrescuOl] [AmoldOO] [BentleyOO] [Boost] [BoostES] [Cargill94] [C90] [C99] [C++98] [C-I-+03] [C++CLI04] [Cline99] [Coplien92] [DewhurstOl] [DewhurstOB] [Ellis90] [Gamma95] A. Alexandrescu. Modem С++ Design. Addison-Wesley, 2001. Перевод: A. Александреску. Современное проектирование на С++. Серия С++ In-Depth, т.З. - М.: Издательский дом Вильяме , 2002. А. Alexandrescu. Discriminated Unions (I), ... (II), and ... (III) . C/C++ Users Journal, 20(4,6,8), April/June/August 2002. M. Arnold, S. Fink, D. Grove, M. Hind, P. F. Sweeney. Adaptive Optimization in the Jalapeco JVM . Proceedings of the Conference on Object- Oriented Programming, Systems, Languages, and Applications, ACM Press, 2000. J. Bentley. Programming Pearls, Second Edition. Addison-Wesley, 2000. Перевод: Бентли Дж. Жемчужины программирования. Второе издание. - СПб.: Питер, 2002. С++ Boost (www.boost.org). Boost Library Requirements and Guidelines, Exception-specification rationale (Boost website). T. Cargill. Exception Handling: A False Sense of Security . С+ + Report. - 9(6), November-December 1994. ISO/IEC 9899:1990(E), Programming Languages-С (ISO C90 and ANSI C89 standard). ISO/IEC 9899:1999(E), Programming Languages - С (revised ISO and ANSI C99 standard). ISO/IEC 14882:1998(E), Programming Languages-С++ (ISO and ANSI С++ standard). ISO/IEC 14882:2003(E), Programming Languages -С++ (updated ISO and ANSI С++ standard including the contents of [C++98] plus errata corrections). C++/CL1 Language Specification, Working Draft L6. Ecma International, August 2004. M. Cline, G. Lomow, and M. Girou. С++ FAQs, Second Edition. Addison-Wesley, 1999. J. Coplien. Advanced С++ Programming Styles and Idioms. Addison-Wesley, 1992. S. Dewhurst. С++ Hierarchy Design Idioms . Software Development 2002 West conference talk, April 2002. S. Dewhurst. С++ Gotchas. Addison-Wesley, 2003. M. Ellis and B. Stroustrup. The Annotated С++ Reference Manual. Addison-Wesley, 1990. Перевод: Элл и с М., Страуструп Б. Справочное руководство по языку программирования Си++ с комментариями. - М.: Мир, 1992. Е. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object- Oriented Software. Addison-Wesley, 1995. Перевод: Гамма Э., Хслм P., Джонсон P., Влиссидес Дж. Приемы объектно-ориентированного проектирования. Паттерны проектирования. - СПб.: Питер, 2001. [GotW] Н. Sutter. Guru of the Week (www.gotw.ca), [HicksOO] C. Hicks. Creating an Index Table in STL. C/C++ Users Journal. - 18(8). August 2000. [HyslopOO] H. Sutter and J. Hyslop. Virtually Yours. C/C++ Users Journal. - 18(12), December 2000. [HyslopO 1] H. Sutter and J. Hyslop. Id Hold Anything For You. C/C++ Users Journal. - 19(12), December 2001. [JikesRVM] Jikes RVM home page. [Jones96] R. Jones and R. Lins. Garbage Collection. Wiley, 1996. [Josuttis99] N. Josuttis. The С++ standard Library. Addison-Wesley, 1999. Перевод: Джосьютис Н. С++. Стандартная библиотека. СПб.: Питер (в печати). [KalevOl] D. Kalev. Designing а Generic Callback Dispatcher. DevX, 2001. [Koenig96] A. Koenig. When Memory Runs Low. С++ Report. - 8(6), June 1996. [LangerOOj A. Langer and K. Kreft. Standard С++ lOStreams and Locales. Addison-Wesley, 2000. [Lippman98] S. Lippman and J. Lajoie. С++ Primer, Third Edition. Addison-Wesley, 1998. Перевод: Липпман С, Лажойе Ж. Язык программирования С++. Вводный курс (3-е издание). СПб.: Невский Диалект, 2001. [LiskovSS] В. Liskov. Data Abstraction and Hierarchy. SIGPLAN Notices. - 23(5), May 1988. [Manley02] K. Manley. Using Constructed Types in Unions. C/C++ Users Journal. - 20(8), August 2002. Martin95] R. C. Martin. Designing Object-Oriented Applications Using the Booch Method. Prentice-Hall, 1995. [MarrieOO] L. Marrie. Alternating Skip Lists. Dr. Dobbs Journal. - 25(8), August 2000. [Meyers96] S. Meyers. More Effective С++. Addison-Wesley, 1996. Перевод: Мейерс С. Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов. - М.: ДМК Пресс, 2000. [Meyers97] S. Meyers. Effective С++, Second Edition. Addison-Wesley, 1997. Перевод: Мейерс С. Эффективное использование С++. 50рекомендаций по улучшению ваших программ и проектов. - М.: ДМК Пресс, 2000. [Meyers99] S. Meyers. Effective С++ CD: 85 Specific Ways to Improve Your Programs and Designs. Addison-Wesley, 1999. [MeyersOO] S. Meyers. How Non-Member Functions Improve Encapsulation. C/C++ Users Journal. -- 18(2), Febmary 2000. [MeyersOI] S. Meyers. Effective STL. Addison-Wesley, 2001. Перевод: Мейерс С. Эффективное использование STL. - СПб.: Питер, 2002. [Newkirk97] J. Newkirk. Private Interface. Object Mentor, 1997. [ObjectMentor] Object Mentor Inc. [Stroustrup88] B. Stroustrup. Parameterized Types for С+ + . Proc. USENIX Conference, Denver. - October 1988. [Stroustrup94] B. Stroustrup. The Design and Evolution of С++. Addison-Wesley, 1994. Перевод: Страуструп Б. Дизайн и эволюция языка С++. - М.: ДМК Пресс, 2000.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |