本书主要内容一些经过验证的用来改善程序效率的方法,包括检验c++语言特性所带来的时间和空间上的成本。全面地描述了C++专家所使用的高级技术,包括placement new、 virtual constructors、smart pointers、reference counting、proxy classes和double-disoatching等以实例说明异常处理带给C++类和函数的冲击。介绍新的语言特性,成员模板、标准模板库等。如果你的编译器不支持这些特性,本书还介绍了如何不利用它们完成工作。\r\n 作者简介:\r\n 迈耶斯,拥有布朗大学计算机科学博士学位,是世界上最著名的C++软件开发权威之一。他的“EffectiveC++两卷本”,开辟了技术图书写作新风格。他曾担任《C++Report》杂志的专栏专作家,经常为《C/C++Users Journal》和《Dr.Dobb''s Jornal》撰稿。
Acknowledgments\r\nIntroduction\r\nBasics\r\n Item 1: Distinguish between pointers and references.\r\n Item 2: Prefer C++-style casts.\r\n Item 3: Never treat arrays polymorphically.\r\n Item 4: Avoid gratuitous default constructor''s.\r\nOperators\r\n Item 5: Be wary of user-defined conversion functions.\r\n Item 6: Distinguish between prefix and postfix forms of\r\n increment and decrement operators.\r\n Item 7: Never overload &&, ] ], or ,.\r\n Item 8: Understand the different meanings of new\r\n and delete.\r\nExceptions\r\n Item 9: Use destructors to prevent resource leaks.\r\n Item I0: Prevent resource leaks in constructors.\r\n Item I I: Prevent exceptions from leaving destructors.\r\n Item 12: Understand how throwing an exception differs from\r\n passing a parameter or calling a virtual function.\r\n Item 13: Catch exceptions by reference.\r\n Item 14: Use exception specifications judiciously.\r\n Item 15: Understand the costs of exception handling.\r\nEfficiency\r\n Item 16: Remember the 80-20 rule.\r\n Item 17: Consider using lazy evaluation.\r\n Item 18: Amortize the cost of expected computations.\r\n Item 19: Understand the origin of temporary objects.\r\n Item 20: Facilitate the return value optimization.\r\n Item 21: Overload to avoid implicit type conversions.\r\n Item 22: Consider using op-- instead of stand-alone op.\r\n Item 23: Consider alternative libraries.\r\n Item 24: Understand the costs of virtual functions, multiple\r\n inheritance, virtual base classes, and RTTI.\r\nTechniques\r\n Item 25: Virtualizing constructors and non-member functions.\r\n Item 26: Limiting the number of objects of a class.\r\n Item 27: Requiring or prohibiting heap-based objects.\r\n Item 28: Smart pointers.\r\n Item 29: Reference counting.\r\n Item 30: Proxy classes.\r\n Item 31: Making functions virtual with respect to more than one object.\r\nMiscellany\r\n Item 32: Program in the future tense.\r\n Item 33: Make non-leaf classes abstract.\r\n Item 34: Understand how to combine C++ and C in the same program.\r\n Item 35: Familiarize yourself with the language standard.\r\nRecommended Reading\r\nAn auto__ptr Implementation\r\nGeneral Index\r\nIndex of Example Classes, Functions, and Templates
无封面